REST:运行 来自位于 Web 项目“/web-inf/lib”内的 jar 的主要方法

REST: run main method from a jar located inside "/web-inf/lib" of a web project

我正在使用 Jersey 1.x 和 Tomcat 8.0。我有一个 .jar 文件,它是我上传到动态 Web 项目的“/web-inf/lib”的主要应用程序。

我似乎无法弄清楚如何 运行 一个 class 包含此 jar 中的主要方法,这对我的 Web 服务至关重要,因为它创建了到 Derby 的连接数据库和我所有的网络服务方法都在使用这些连接。

它必须在 Tomcat 服务器启动时启动 运行ning。

绝对不是这样做的方法。如果你想在 Tomcat 开始时有一些东西 运行,请看一下 ServletContextListener。基本上你实现了这个接口:

import javax.servlet.ServletContextListener;

public class MyContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // your init code goes here
    }
}

但是,我怀疑这就是你想要做的。如果您使用的是本地或嵌入式 Derby 实例,那么您可能没问题,但现在您必须以某种方式分发连接信息。传统上,在像您这样的应用程序中,您将使用 DBCP 之类的东西(包含在 Tomcat 中 - 看看 Tomcat DataSource docs),并在每次需要时获得与数据库的连接。如果您只是初始化数据库,那么 ServletContextListener 将允许这样做。但是在那之后,不要使用 ServletContextListener 来分发数据库连接。