WEB-INF/classes/ vs WEB-INF/lib/*.jar dans le classpath de priorité?
une guerre emballé pour un tomcat webapplication contient WEB-INF/classes et WEB-INF/lib/*.jar
qui a la priorité dans le CLASSPATH?
la raison pour laquelle je vais poser est de savoir, que mon application utilise A.jar qui contient des éléments générés à partir d'un aspectj projet; et B.jar qui sont tissés avec les aspects de A.jar.
lorsque le projet myapp est compilé, il génère un grand nombre de Classes, qui l'emportent sur ces mêmes classes de B.jar ces sont emballés dans le WEB-INF/classes dir. donc, si charge tomcat WEB-INF/lib/*.bocal en premier, puis le tissé aspects ne prendra pas effet
Similaire à stackoverflow.com/q/5474765/435605
OriginalL'auteur teddy teddy | 2011-12-03
Vous devez vous connecter pour publier un commentaire.
Lorsqu'une demande de charger une classe à partir de l'application web WebappX chargeur de classe est traitée, ce chargeur de classe aura l'air dans le local des référentiels d'abord, au lieu de déléguer avant de le regarder. Il y a des exceptions. Les Classes qui font partie de la JRE classes de base ne peut pas être remplacée. Pour certaines classes (comme l'analyseur XML des composants dans J2SE 1.4+), le J2SE 1.4 a approuvé fonction peut être utilisée (voir la commune de classloader définition ci-dessus). En dernier, les JAR contenant les classes de l'API servlet sera ignoré par le chargeur de classe. Tous les autres chargeurs de classe dans Tomcat 5 suivez l'habitude délégation modèle.
Par conséquent, du point de vue d'une application web, de la classe ou de chargement de ressources regarde dans les dépôts suivants, dans cet ordre:
Si le WEB-INF/classes est recherché d'abord avant de WEB-INF/lib
Ref: http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html
OriginalL'auteur ziggy
Si vous mettez des classes dans WEB-INF/classes, elles ont la priorité avant les bocaux dans WEB-INF/lib. J'ai parfois utilisé ce à des fins de débogage.
Voir aussi ici.
OriginalL'auteur user1078445