java - 将 Java 应用程序部署为 Servlet

标签 java tomcat servlets

我有一个 java 应用程序,到目前为止它是作为一个独立的 java 应用程序(即可执行 jar)运行的。我现在需要将它作为 servlet 部署在 Tomcat 中。虽然它不需要实际处理任何 HTTP 请求,但它需要使用 tomcat 启动。

将项目转换为部署在 Tomcat 中需要哪些步骤?我使用 maven 作为构建工具和 Java 1.5。

最佳答案

我了解到您想在服务器启动时运行此应用程序。最好的方法是实现 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 执行它.

关于java - 将 Java 应用程序部署为 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2283600/

相关文章:

java - 如何防止 IntelliJ 生成覆盖原始文件的 MANIFEST.MF?

java - 无法启动嵌入式容器 Spring Boot 应用程序 org.apache.catalina.LifecycleException : A child container failed during start

tomcat - 如何在 Net-beans IDE 中添加两个 tomcat 服务器?

java - 哪些 servlet 是预初始化的好成员?

java - 如何通过自动滚动将 JTextPane 的 Caret 位置居中?

java - 如何将 DAO 与 hibernate/jpa 一起使用?

java - Hibernate数据一致性

java - 连接到数据库的方法给出空指针异常

java - 循环 jaxb marshall

java - RHEL Eclipse 无法加载 JNI 共享库 libjvm.so