如果我有需要在我的webapp和Tomcat之間共享的類(例如,自定義領域和委託人),那麼包含這些類的.jar文件應該放在哪裏?類加載器和與Apache Tomcat共享.jar文件
目前我將.jar放入$ {CATALINA_HOME}/lib中。當從相同類型的類中分配引用時,此結果是一個ClassCastException。這裏有一個例子:
MyCustomPrincipal principal = (MyCustomPrincipal)FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
上面的方法拋出一個ClassCastException。該方法返回實際的MyCustomPrincipal類型(因爲這是我的自定義領域在執行身份驗證時給Tomcat的東西),顯然,它是由不同的類加載器創建的。我如何解決這個問題,以便Tomcat和我的webapp都可以使用MyCustomPrincipal?
http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html
任何幫助表示讚賞。 Andrew
你的webapp中是否有另一個JAR副本? – 2010-06-19 19:43:42
是的,部署到Tomcat的.war文件包含MyCustomPrincipal.class。 – Andrew 2010-06-19 19:52:16