我正在使用 Jersey 1.x 和 Tomcat 8.0。我有一个 .jar 文件,它是我上传到动态 Web 项目的“/web-inf/lib”的主要应用程序。
我似乎无法弄清楚如何在这个 jar 中运行一个包含主要方法的类,这对我的 Web 服务至关重要,因为它创建了到 Derby DB 的连接,并且我所有的 Web 服务方法都使用这些连接。
它必须在 Tomcat 服务器启动时开始运行。
最佳答案
绝对不是这样做的方法。如果你想在 Tomcat 启动时运行一些东西,看看 ServletContextListener .基本上你实现了这个接口(interface):
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 来分发数据库连接。
关于java - REST:从位于 Web 项目的 "/web-inf/lib"内的 jar 运行 main 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35661506/