我通过maven-tomcat-plugin使用嵌入式tomcat。在该插件的第6版中,如果我执行mvn tomcat6:run
,则服务器启动,并且contextInitialized
方法在之前执行该连接器尝试打开端口。
没有代码的更改,但是当我从mvn tomcat7:run
开始时,服务器打开端口,然后然后尝试启动contextInitialized
方法。
为什么?
我要问的是因为我使用了初始化的上下文来查找运行的tomcat并杀死它,以便新实例可以接收其端口。如果Tomcat失败了端口,然后检查不再起作用的上下文化方法。有其他方法可以在不下降的情况下重新部署嵌入式tomcat吗?
在TC6中,我们遇到了一个问题,即contextInitialized
-Methode需要有关connector
的信息,例如,是否使用了https
和互置词,并且用户在tomcat-users.xml
中注册的用户。
不幸的是,在上下文限制中不可用的信息,以及在加载users-list
之前(但在上下文中)不在的请求。
这就是为什么我们在TC7中更改了此。
您出于某种原因(IDC)使用了多个tomcats,解决方案应该更好地处于更高的水平。
我的建议:使用不同端口在两个tomcats上通过AJP连接器替换HTTP - 连接器,安装Apache的HTTPD,然后通过重新加载HTTPD-CONFIG切换Tomcats。
AJP详细信息。