我使用Java,Struts创建了一个Web应用程序,并在Apache Server和Tomcat上运行.能够从Web重新启动应用程序非常有用.我不想重启Tomcat,只有这个webapp,就像Tomcat Manager一样.
你知道我怎么办吗?如果没有,任何方式来模拟该行为(重新加载config.properties,使Hibernate初始化进程等)?
非常感谢.
我快速浏览了Tomcat Manager的源代码.看起来有一个类是Tomcat源的一部分,名为"Container Servlet".来自javadocs:
甲ContainerServlet是有权访问卡塔利娜内部功能的服务程序,并从卡塔利娜类加载器,而不是该web应用程序的类加载器加载.
ContainerServlet自动传递一个包装器,可以用来获取Context和Deployer - 而Deployer有一些有用的方法,例如start(String contextPath)
,stop(String contextPath)
它们可以做你想要的.
所以,我认为您需要做的是编写自己的继承自ContainerServlet的servlet,并使用Catalina类加载器配置Tomcat以加载您的servlet(查看Manager如何配置以了解如何配置).请注意,在托管环境中,这可能不适合您.
然后你的servlet可以有一个你按下的按钮来重新加载应用程序.我建议在其前面加上某种密码保护.:)
归档时间: |
|
查看次数: |
5551 次 |
最近记录: |