2011-06-30 2 views
0

Je me demande ce qui se passerait, si j'ai une application avec des oreilles et des guerres de couple, et dans chacun d'eux classe "Test"? Est-ce que c'est l'enfer? Quelles classes chargeraient en premier (des oreilles ou des guerres)? S'il vous plaît, envoyez-moi quelque part, où je peux lire sur ce cas délicat plus détaillée.Java classpath chargement question

Répondre

0

Vous devez utiliser des paquets. est différent de com.foo2.Test.

+0

Je sais, mais si j'ai des libs externes, que je ne peux pas gérer, quel est l'ordre de chargement pour la situation décrite? – Denis

1

Les conteneurs de servlet utilisent normalement une stratégie d'un classloader-par-webapp pour éviter cet enfer. Donc, si vous avez deux applications déployées sur le même conteneur, le système aura des chargeurs de classe différents qui satisferont leurs besoins de résolution de classe et de chargement. Tomcat has a document for this. Bien sûr, il y a quelques trucs comme travailler avec les pilotes JDBC (qui sont un par processus JVM) et JNI (une bibliothèque donnée ne peut pas être chargée plus d'une fois par une JVM donnée ou quelque chose comme ça) mais le le travail général reste le même.

+0

Hm. Merci. Il n'y a donc aucun problème à utiliser les mêmes classes dans différentes oreilles/guerres. Merci. – Denis

+0

Oui, ça ne devrait pas poser de problème. Encore une fois, essayer les choses vous-même serait beaucoup mieux. :-) –

+0

Ok. Que seront dans ces cas (JDBC, JNI)? Charge la première fois à partir de l'oreille/guerre aléatoire et après cela vient de récupérer du cache? – Denis