2012-12-27 4 views
2

Je construis un utilitaire/outil pour profiler/tracer les appels de méthode dans une application Java EE déployée dans Weblogic 10 (java 6). L'intention est de comprendre rapidement le flux des événements dans notre énorme application d'entreprise. (Passer par le code est fastidieux)Utilisation de jpda pour se connecter à weblogic

J'ai suivi l'application de démonstration "Trace" fournie avec jdk6 pour construire ma version. L'application fonctionne correctement lors de la connexion à une application de style bureau normale et le suivi des appels de méthode. Mais pour Weblogic, EventQueue.remove renvoie null EventSet. Veuillez noter que la connexion à weblogic VM est réussie. Mais dès qu'il est connecté, tout clic ou activité dans l'application Web déployée entraînera le blocage du thread dans la machine virtuelle cible et l'expiration de la requête http.

J'utilise les arguments vm suivants pour un script de démarrage weblogic:

-Xdebug -Xnoagent -Djava.compiler=NONE \ 
-Xrunjdwp:transport=dt_socket,server=y,address=9002,suspend=n 

Exemple de code utilisé est de jdk1.6.0_13 \ demo \ jpda \ exemples \ com \ tools soleil \ examples \ exemple \ trace

Est-ce que quelqu'un a de l'expérience avec des outils similaires ou a fait face à des problèmes similaires? Je me demande comment le débogage à distance Eclipse est implémenté!

Merci!

Répondre

0

Vous pouvez voir le problème en vous connectant à la couche JDWP. Utilisez un renifleur de paquets TCP pour votre système d'exploitation. Vous devrez peut-être exécuter votre débogueur sur une machine différente afin de capturer le trafic. Il est facile de décoder les paquets en utilisant simplement la spécification JDWP. Si le simple fait d'analyser ne vous aide pas, vous pouvez comparer votre trafic JDWP avec celui d'Eclipse ou de votre scénario de travail. J'ai vu le débogueur Eclipse apparaître bloqué lors de l'inondation de la connexion avec des événements de classe non chargés.

Questions connexes