一尘不染

创建自定义tomcat会话管理器而不将jar放在CATALINA_HOME目录中?

tomcat

我正在为Tomcat创建自定义会话管理器,但需要注意的是,我必须将jar(以及所有关联的jar)放在CATALINA_HOME /
lib目录中,否则即使找到类,也无法找到noclassdef在WEB-INF / lib目录中。

在加载会话管理器时,有什么方法可以迫使tomcat在Web应用程序的lib目录中查找?将其放在lib目录中很容易出错(因为您必须记住在新系统上升级和/或安装时将jar复制过来),并使jar的开发更加困难。


阅读 213

收藏
2020-06-16

共1个答案

一尘不染

从Tomcat 7.0.27开始,文件中的元素META-INF/context.xml由commons-
digester处理,有效的ClassLoader设置为加载ContextConfig类的类-
该类牢固地位于Tomcat的服务器ClassLoader中,该类位于可访问Web应用程序类的任何东西的ClassLoading链。

因此,如果不修改Tomcat源,将无法Manager从Web应用程序中加载您的内容。考虑加入Tomcat用户的邮件列表以讨论此功能。

编辑2015-067-01

如果要ClassLoader为Web应用程序指定,则需要<Loader>在您的<Context>http
:
//tomcat.apache.org/tomcat-8.0-doc/config/loader.html中使用元素。

2020-06-16