2009-11-03 4 views
8

Je suis en train de déboguer une application jnlp, et j'étais capable de la déboguer à distance via eclipse, mais plus maintenant.débogage à distance d'une application jnlp avec eclipse

la commande pour démarrer est:

/usr/java/jdk1.6.0_14/jre/bin/java -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1445 -Djnlpx.heapsize=64m,512m -DtrustProxy=true -Xverify:remote -Djava.security.policy=/lib/security/javaws.policy -Dfile.encoding=UTF-8 -Xbootclasspath/a:/usr/java/jdk1.6.0_14/jre/lib/deploy.jar:/usr/java/jdk1.6.0_14/jre/lib/javaws.jar:/usr/java/jdk1.6.0_14/jre/lib/plugin.jar -classpath /usr/java/jdk1.6.0_14/jre/lib/deploy.jar com.sun.javaws.Main launch.jnlp 
Listening for transport dt_socket at address: 1445 

et le problème est que lorsque j'attache le débogueur Eclipse, il arrête et redémarre; donc le débogueur s'attache au premier processus; et quand cela meurt, le débogueur aussi. Le script du débogueur n'a pas vraiment d'importance; car le processus jnlp redémarre tout seul avant que le débogueur ne soit lancé si suspend = n.

J'ai essayé de le tracer, mais l'option -XX: TraceSupport = true (et d'autres variantes que j'ai essayées) provoque une erreur jvm. J'utilise Fedora 11, Eclipse Java EE IDE pour les développeurs Web. (Build id: 20090621-0832)

Je demande si quelqu'un sait comment résoudre ce problème, ou du moins comment activer la journalisation meilleure (c.-à capturer toute la sortie de la console à un journal, afin que je puisse prendre un coup d'oeil à la première console qui clignote sur mon écran pendant une milliseconde)

merci!

Répondre

4

Mon patron a trouvé la réponse:

Il semble que les balises “<property>” dans le fichier jnlp sont plus restrictives la plus récente JRE. Selon le Sun documentation:

« Pour une application non sécurisée, propriétés du système définies dans le fichier JNLP seront être uniquement définis par Java Web Start si sont considérés comme sûrs, ou si le nom de la propriété commence par « jnlp " ou « javaws. ». »

Il ressemble à l'état non sécurisé provoque l'application de lancer une deuxième fois avec les appropriées propriétés.

après une recompilation et la fixation d'une question sans rapport avec nous l'espérons où les nouvelles lignes étaient à l'origine de la signature APPLICATION.JNLP et le launch.jnlp pour ne pas apparaître comme « le même », le débogueur fonctionne maintenant.

+1

Super! Votre commentaire m'a aidé à trouver mon propre problème. Il semble que JNLP soit téléchargé ou analysé deux fois, en fonction de l'état non approuvé. La deuxième fois, les paramètres utilisés sont ceux définis dans . J'ai donc dû ajouter tous mes paramètres de requête dans le HREF, et ça fonctionne finalement. Merci. – Kloe2378231

4

Cette blog post possède des variables d'environnement que vous pouvez définir pour déboguer jnlp. Cela a toujours fonctionné pour moi.

set JAVAWS_TRACE_NATIVE=1 

    set JAVAWS_VM_ARGS=-Xdebug -Xnoagent -Djava.compiler=NONE 
      -Xrunjdwp:transport=dt_socket,address=8989,server=y,suspend=y 
    javaws http://server:port/descriptor.jnlp 
+0

Je l'ai déjà trouvé et essayé certains des drapeaux; Je vais continuer et laisser les gens connaître les résultats; ce matin, j'ai trouvé ce post (http://forums.sun.com/thread.jspa?threadID=569693) et je vais continuer à brancher. –

+0

Je viens aussi de trouver ce poste: http://stackoverflow.com/questions/686061/how-can-i-debug-applications-under-java-web-start-jnlp –

Questions connexes