到目前为止,我有一个java应用程序,它是作为独立的java应用程序(即可执行的jar)运行的。我现在需要将它作为servlet部署在Tomcat中。它不需要实际处理任何HTTP请求,但需要使用tomcat启动。
转换项目以使其可以在Tomcat中部署需要哪些步骤?我使用maven作为构建工具,使用Java1.5。
发布于 2010-02-18 04:55:05
我知道你想在服务器启动时运行这个应用。最好的方法是实现ServletContextListener并在contextInitialized()方法中运行应用程序。例如。
public class Config implements ServletContextListener {
private YourApp yourApp;
public void contextInitialized(ServletContextEvent event) {
yourApp = new YourApp();
yourApp.start();
}
public void contextDestroyed(ServletContextEvent event) {
yourApp.shutdown();
}
}在web.xml中注册,如下所示:
<listener>
<listener-class>com.example.Config</listener-class>
</listener>就这样。不需要将其包装在HttpServlet中,因为您不会在其上发出HTTP请求。
但是,您需要确保它在自己的线程中运行,否则它会阻止启动。如果没有,那么将它包装在Runnable中并使用ExecutorService执行它。
发布于 2010-02-18 03:20:24
我假设你的应用程序一直在运行,并且你已经有了一个应用程序/web服务器(例如Tomcat/Jetty),这样你的生活就可以很容易地部署到其中。鉴于此,您需要:
AbstractHttpServlet类,特别是init()方法。这将启动您的应用程序。web.xml,并将启动时加载属性设置为1(或者至少从中创建一个.war并将其部署到步骤2确保在部署/服务器重新引导时调用init()方法,因此您不必响应HTTP请求(servlet的正常启动触发器)。
使用像javaservicewrapper这样的东西,并将其包装为Windows服务或类似服务,可能会更简单、更合适。
https://stackoverflow.com/questions/2283600
复制相似问题