如果我有需要在我的 webapp 和 Tomcat 之间共享的类(例如自定义领域和主体),那么包含这些类的 .jar 文件应该放在哪里?
目前我将 .jar 放在 ${CATALINA_HOME}/lib 中。当从相同类型的类分配引用时,此结果是 ClassCastException。下面是一个例子:
MyCustomPrincipal principal = (MyCustomPrincipal)FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
Run Code Online (Sandbox Code Playgroud)
上面的方法抛出一个 ClassCastException。该方法返回一个实际的 MyCustomPrincipal 类型(因为这是我的自定义领域在执行身份验证时给 Tomcat 的),显然,它是由不同的类加载器创建的。我该如何解决这个问题,以便 Tomcat 和我的 web 应用程序都可以使用 MyCustomPrincipal?
http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html
任何帮助表示赞赏。安德鲁