我正在为 Tomcat 开发一个自定义 session 管理器,我让它工作时有一个警告,我必须将 jar(和所有相关的 jar)放在 CATALINA_HOME/lib 目录中,否则我会得到一个 noclassdef found 异常,即使尽管这些类位于 WEB-INF/lib 目录中。
有什么方法可以强制 tomcat 在加载 session 管理器时查看 Web 应用程序库目录?将它放在 lib 目录中很容易出错(因为在升级和/或在新系统上安装时必须记住将 jar 复制过来)并且使 jar 的开发更加困难。
最佳答案
从 Tomcat 7.0.27 开始,您的 META-INF/context.xml
中的
因此,如果不修改 Tomcat 源代码,将无法加载您的 Manager
从您的网络应用程序中。考虑加入 Tomcat 用户的邮件列表来讨论此类功能。
编辑 2015-067-01
如果你想指定一个ClassLoader
对于您的 Web 应用程序,您需要使用 <Loader>
<Context>
中的元素: http://tomcat.apache.org/tomcat-8.0-doc/config/loader.html
关于session - 在不将 jar 放入 CATALINA_HOME 目录的情况下创建自定义 tomcat session 管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10924715/