重新启动嵌入式 tomcat
Restarting embedded tomcat
我通过 maven-tomcat-plugin 使用嵌入式 tomcat。在该插件的版本 6 中,如果我执行 mvn tomcat6:run
,服务器启动并且 contextInitialized
方法执行 BEFORE 连接器尝试打开端口。
代码没有变化,但是当我从 mvn tomcat7:run
开始时,服务器打开端口并且 THEN 尝试启动 contextInitialized
方法。
为什么?
我问是因为我使用初始化的上下文找到 运行 tomcat 并杀死它,以便新实例可以占用它的端口。如果 tomcat 获取端口失败,然后检查不再起作用的 contextInitialized 方法。有没有另一种方法可以在不停机的情况下重新部署嵌入式 tomcat?
在 tc6 中,我们遇到了 contextInitialized
方法需要有关 connector
的信息的问题,例如,如果使用 https
和相互身份验证以及用户注册的信息tomcat-users.xml
.
不幸的是,这些信息在上下文初始化时不可用,并且在 users-list
加载之前(但在上下文初始化之后)传入的请求被拒绝。
这就是我们在 tc7 中更改它的原因。
您出于某种原因(idc)正在使用多个 tomcat,解决方案最好在更高级别上。
My suggestion: Replace the HTTP-Connector by a AJP-Connector on both tomcats using different ports, install Apache's httpd and switch the tomcats by reload httpd-config.
我通过 maven-tomcat-plugin 使用嵌入式 tomcat。在该插件的版本 6 中,如果我执行 mvn tomcat6:run
,服务器启动并且 contextInitialized
方法执行 BEFORE 连接器尝试打开端口。
代码没有变化,但是当我从 mvn tomcat7:run
开始时,服务器打开端口并且 THEN 尝试启动 contextInitialized
方法。
为什么?
我问是因为我使用初始化的上下文找到 运行 tomcat 并杀死它,以便新实例可以占用它的端口。如果 tomcat 获取端口失败,然后检查不再起作用的 contextInitialized 方法。有没有另一种方法可以在不停机的情况下重新部署嵌入式 tomcat?
在 tc6 中,我们遇到了 contextInitialized
方法需要有关 connector
的信息的问题,例如,如果使用 https
和相互身份验证以及用户注册的信息tomcat-users.xml
.
不幸的是,这些信息在上下文初始化时不可用,并且在 users-list
加载之前(但在上下文初始化之后)传入的请求被拒绝。
这就是我们在 tc7 中更改它的原因。
您出于某种原因(idc)正在使用多个 tomcat,解决方案最好在更高级别上。
My suggestion: Replace the HTTP-Connector by a AJP-Connector on both tomcats using different ports, install Apache's httpd and switch the tomcats by reload httpd-config.