我目前有一个没有 web.xml 的 Jersey webapp。它部署得很好,但在收到第一个 Web 请求之前不会启动。
为了让 webapp 在启动时加载,我可以为 webapp 创建一个 web.xml 并给出一个 load-on-startup 标记。但是,我强烈不希望制作 web.xml。
有没有办法让 JAX-RS 应用程序在没有 web.xml 的情况下在启动时加载?我什至会接受特定于 Jersey 和/或 Tomcat 的解决方案。
编辑:我也将接受一个急切地在 Tomcat 实例中加载所有应用程序的解决方案。
编辑:让我根据评论提供有关如何部署应用程序的更多信息。
部署过程并不复杂。
该应用程序将存在于运行 Ubuntu 12.04 的 EC2 实例上。我正在手动设置应用程序的一个实例;一旦它工作,我将创建一个应用程序的 AMI 并根据需要创建它的其他副本。
要在初始实例上部署应用程序,我只需将 WAR 文件复制到/var/lib/tomcat7/webapps
并重新启动 Tomcat。此 Tomcat 实例上不会运行其他 Web 应用程序。
如果任何其他信息有用,请告诉我!我会很高兴地添加它。
编辑:为了清楚起见,这就是我的 webappApplication
类的外观,在高层次上:
@ApplicationPath("/")
public class App extends ResourceConfig {
// ...
}
我使用 Jersey-specificResourceConfig
类而不是更通用的 JAX-RSApplication
类,因为我使用 Jersey 的内置 HK-2 进行一些依赖注入。