我使用Jersey 1.x和Tomcat 8.0。我有一个.jar文件,这是我上传到" / web-inf / lib"的主要应用程序。动态Web项目。
我似乎无法弄清楚如何在这个jar中运行一个包含main方法的类,这对我的Web服务至关重要,因为它创建了与Derby DB的连接,我的所有Web服务方法都是使用这些连接。
必须在Tomcat服务器启动时开始运行。
答案 0 :(得分:1)
这绝对是不的方式。如果您想在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)并在每次需要时获取与DB的连接。如果您只是初始化数据库,那么ServletContextListener将允许它。但在此之后,不要使用ServletContextListener来分发数据库连接。