Si j'ai des classes qui doivent être partagées entre ma webapp et Tomcat (par exemple un domaine et un domaine personnalisés), où va le fichier .jar contenant ces classes?Classloaders et partage de fichiers .jar avec Apache Tomcat
Actuellement, je mets le .jar dans $ {CATALINA_HOME}/lib. Ce résultat est une exception ClassCastException lors de l'attribution de références à partir de classes du même type. Voici un exemple:
MyCustomPrincipal principal = (MyCustomPrincipal)FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
La méthode ci-dessus génère une exception ClassCastException. La méthode renvoie un type MyCustomPrincipal réel (puisque c'est ce que mon domaine personnalisé a donné à Tomcat lors de l'authentification) qui, apparemment, a été créé par un chargeur de classe différent. Comment puis-je résoudre ce problème afin que Tomcat et ma webapp puissent utiliser MyCustomPrincipal?
http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html
Toute aide est appréciée. Andrew
Avez-vous une autre copie du JAR dans votre webapp? –
Oui, le fichier .war qui est déployé sur Tomcat contient MyCustomPrincipal.class. – Andrew