java - webapp完全启动后的Jersey初始化代码

标签 java jersey jax-rs

我之前问过这个问题: Jersey app-run initialization code on startup to initialize application

在服务器完全初始化 Web 应用程序后,有什么方法可以运行此初始化代码吗?我遇到了 catch-22 问题,因为我需要 Tomcat 完全启动 Web 应用程序,然后才能运行一次登录调用?

最佳答案

有一些注意事项。首先,Jersey 被实现为 servlet,这就是它的加载方式。将 servlet 启动与 servlet 上下文启动分离的最简单方法是在启动时不加载它。通过从 web.xml 中的 servlet 描述符中省略 load-on-startup 元素来实现此目的。将其设置为非正值也应该有效。

如果您必须在启动时加载servlet,但仍想将其解耦(这就是我的情况),您可能需要编写一些自定义代码,我就是这么做的。我想不出其他办法了。使用某种类型的监听器--a ServletContextListener或 Spring ApplicationListener ,具体取决于您的应用程序的设置方式 - 启动一个新线程,该线程将通过向您的 Jersey servlet 发出 HTTP 请求来初始化它。感觉有点脏,但就像我说的,这是我和我的团队唯一能想到的。

关于java - webapp完全启动后的Jersey初始化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449165/

相关文章:

dependency-injection - Jersey 2 每个请求 @Context 注入(inject)

java - 使用 DecimalFormat 将 double 格式化为 String 会抛出 IllegalArgumentException

java - 尝试检测 ActionMode 内存泄漏

java - Jersey2.13 : MessageBodyReader not found for StreamingOutput

java - REST API - Swagger + Java + Jersey 错误的列表路径和额外的 api

java - JAX-Rs xml 中的出价是如何进行的?

java - 在ireport中按日期对数据进行分组

java - Jacoco:查找外部测试的代码覆盖率

java - 如何在不使用tomcat的情况下运行jersey-server webservice服务器

java - 如何使 Jersey @RolesAllowed 与 @Stateless 一起工作?