2016-01-25 2 views

Répondre

0

Ceci est par nature - vous ne pouvez pas faire cela. Avec les chargeurs de classe hiérarchiques utilisés par tomcat, vous n'avez pas la possibilité de charger une classe contenant une application Web depuis une classe chargée à partir du classpath global, à moins que vous ne construisiez votre propre mécanisme de chargement de classe - ce que je ne recommanderais pas. Je voudrais plutôt savoir quel problème vous essayez de résoudre avec cette tentative de solution. Je ne peux pas penser à un problème sous-jacent où ce serait la bonne solution.

+0

La solution n'est pas la bonne, mais le scénario est comme ça. Les classes communes qui sont utilisées par tous les fichiers war sont placées dans tomcat lib et j'ai besoin d'obtenir des données dans une classe dans tomcat lib qui est la même chose que dans une classe du fichier war. Je ne veux pas copier coller le même code mais instancier la classe dans le fichier war et obtenir les données –

0

Vous devez utiliser Thread # getContextClassLoader() pour instancier des classes qui pourraient faire partie de votre distribution WAR. Mais vérifiez que Tomcat l'initialise avec le classloader de l'application web.

+0

J'ai essayé d'utiliser le webappclassloader pour org.apache.catalina mais en obtenant un pointeur null dans la méthode .start() –

+0

Ne pas essayer initialiser les chargeurs de classe par vous-même. Utilisez celui qui est déjà initialisé par Tomcat. – dzidzitop