2010-03-25 14 views
0

J'utilise la bibliothèque d'injection de dépendances de Salve qui code le code de byte de l'application Web. J'ai spécifié -javaagent dans les options de machine virtuelle Tomcat et l'ai pointé vers le fichier d'agent Salve. L'agent jar est chargé, mais java.lang.NoClassDefFoundError ne peut pas trouver les classes qui se trouvent dans d'autres fichiers Salve situés dans le dossier WEB-INF/lib de mon application Web.Problèmes de chargeur de classes Tomcat 6 javagent

Je peux résoudre ce problème en mettant ces fichiers JAR dans le dossier Tomcat/endorsed. Cependant, certains de ces fichiers dépendent de bibliothèques tierces, telles que Spring et servlet-api.jar. Par conséquent, je suis obligé de mettre toutes ces dépendances dans Tomcat/approuvé ainsi.

Quelqu'un pourrait-il suggérer un meilleur moyen de gérer les dépendances d'un javaagent de Tomcat?

Merci.

Répondre

0

La librairie Salve se compose de plusieurs fichiers JAR. Certains d'entre eux dépendent de bibliothèques tierces, telles que Spring. J'ai fini par déplacer ces JAR de tomcat/endossé vers mon WEB-INF/lib. Mes conclusions et la structure finale du répertoire de travail sont documentées here?

0

Cela semble très étrange. Les agents ne dépendent généralement pas des autres classes, car cela les rendrait complètement inutiles. Je pense que vous ne comprenez pas l'erreur. Est-il possible que la dépendance provienne des classes instrumentées et que les mauvaises classes finissent par être instrumentées?

+0

La librairie Salve se compose de plusieurs fichiers JAR. Certains d'entre eux dépendent de bibliothèques tierces, telles que Spring. J'ai fini par déplacer ces JAR de tomcat/endossé vers mon WEB-INF/lib. Mes conclusions et la structure finale du répertoire de travail sont documentées ici http://groups.google.com/group/salve-disc/browse_thread/thread/2c70e1b24c277246? – alecswan

0

Salve? WTF? Utilisez AspectJ.

"Cadre d'injection de dépendance dépendant du ressort" - o_O?!