Question

Cela fait des années que je travaille en Java (c'est mon excuse).

J'essaie de lancer une interface utilisateur Java Swing en tant qu'applet (auparavant via Web Start).

J'ai modifié le fichier jnlp pour refléter les changements que je sais nécessaires pour une applet (par exemple en utilisant applet-desc au lieu de application-desc).

À l'intérieur de la balise <resources> dans le fichier jnlp, nous définissons les propriétés système comme ceci:

<property name="java.security.auth.login.config" value="$$context/app/auth.conf"/>

Dans la méthode init de la classe principale, nous essayons de lire certaines de ces propriétés système et toujours obtenir "null" comme valeur.

  1. Quelqu'un a-t-il une idée des raisons pour lesquelles les propriétés du système ne "collent" pas?

  2. Étrangeté peut-être liée: j'ai Java configuré pour ouvrir la console lorsque quelque chose tourne. Lorsque je charge la page avec cette applet, la fenêtre de la console s'ouvre DEUX FOIS, les deux fenêtres affichant les détails du chargement du jnlp, mais une seule fenêtre continue avec le chargement complet de l'application.

MISE À JOUR:

Voici le fichier jnlp:

 <?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" >
  <information>
    <title>app</title>
    <offline-allowed/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
      <j2se version="1.6+" java-vm-args="-Xms128m -Xmx1024m -Xss1m"/>
      <property name="java.naming.factory.initial" value="org.jboss.naming.HttpNamingContextFactory"/>
      <property name="java.naming.factory.url.pkgs" value="org.jboss.naming:org.jnp.interfaces"/>
      <property name="java.naming.provider.url" value="$$context/invoker/JNDIFactory"/>
      <property name="java.security.policy" value="$$context/app/server.policy"/>
      <property name="java.security.auth.login.config" value="$$context/app/auth.conf"/>
      <property name="login.context" value="client-login"/>
      <property name="jndi.port" value="1099"/>
      <property name="service.impl" value="Remote"/>
      <property name="polling" value="true"/>
      <jar href="cglib-2.1.3.jar"/>
      <jar href="com.jdas.apps.binmgmt.gui.jar" main="true"/>
      <jar href="commons-beanutils.jar"/>
      <jar href="commons-collections-2.1.1.jar"/>
      <jar href="commons-javaflow.jar"/>
      <jar href="commons-lang.jar"/>
      <jar href="commons-logging.jar"/>
      <jar href="ecs-1.4.1.jar"/>
      <jar href="hibernate3.jar"/>
      <jar href="itext-1.01.jar"/>
      <jar href="jade-5.2.3_AGRIS_PATCH.jar"/>
      <jar href="jbossall-client.jar"/>
      <jar href="jboss-j2ee.jar"/>
      <jar href="jcalendar-1.1.4-agris.jar"/>
      <jar href="jhall-3.1.3.jar"/>
      <jar href="looks-all-1.1.jar"/>
      <jar href="odmg-3.0.jar"/>
      <jar href="pvjdbc2.jar"/>
      <jar href="swing-layout-1.0.jar"/>
      <extension name="additional" href="unsigned.jnlp"/>
  </resources>
  <applet-desc main-class="com.jdas.apps.binmgmt.gui.main.BinManagementApp" name="binMgmt" width="1024" height="768" >

  </applet-desc>
</jnlp>
Était-ce utile?

La solution

Vous devrez signer le fichier JNLP pour définir les propriétés système (autres que celles qui ont des exemption ).Regardez certaines de ces propriétés que vous essayez de définir!

Pour signer un fichier JNLP, placez une copie octet pour octet (il est préférable de s'en tenir à US-ASCII (!)) dans JNLP-INF / APPLICATION.JNLP avant de signer le fichier jar.

Autres conseils

Je viens de passer 2 jours à essayer de résoudre ce problème, à essayer de signer des jars et d'autres fichiers ... et ensuite j'ai trouvé la solution qui semble très simple et fonctionne bien:

J'ai * mis un fichier jndi.properties avec le contenu suivant dans mon JRE-home-director * y (jre7 / lib):

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099

J'ai eu ce problème lors de la mise à jour de Java 1.6 vers Java 1.7 ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top