重启嵌入式tomcat

时间:2016-12-23 10:10:00

标签: java tomcat tomcat7 tomcat6 maven-tomcat-plugin

我通过maven-tomcat-plugin使用嵌入式tomcat。在该插件的第6版中,如果我执行contextInitialized,则服务器启动,mvn tomcat7:run方法执行 BEFORE 连接器尝试打开端口。

代码没有变化,但当我从contextInitialized开始时,服务器会打开端口,而然后会尝试启动$headers .= "\r\nContent-Type: text/html; boundary=\"PHP-mixed-{$sep}\""; 方法。

为什么呢?

我问,因为我使用初始化的上下文来查找正在运行的tomcat并将其杀死,以便新实例可以获取其端口。如果tomcat无法获取端口,然后检查不再有效的contextInitialized方法。是否有另一种方法可以在不停机的情况下重新部署嵌入式tomcat?

1 个答案:

答案 0 :(得分:1)

在tc6中,我们遇到了contextInitialized - methode需要有关connector的信息的问题,例如,如果使用了https并且使用了相互认证,那么用户在{{{ 1}}。

不幸的是,在上下文初始化时无法使用的信息和在tomcat-users.xml之前收到的请求已被加载(但在context-init之后)被拒绝。

这就是为什么我们在tc7中改变了这一点。

您出于某种原因使用多个tomcats(idc),并且解决方案应该更好地处于更高级别。

  

我的建议:使用不同的端口在两个tomcats上用AJP-Connector替换HTTP-Connector,安装Apache的httpd并通过重新加载httpd-config来切换tomcats。

AJP details