java - 如何在非 servlet 3.0/非 Java EE 6 中激活 jax-rs ContextResolver 和 Application

标签 java tomcat jaxb jetty jax-rs

Java EE 6 提供了一种在启动时激活 JAX-RS 应用程序的方法。

问题是我(当然我们中的许多人仍在)使用不符合 Java EE/Servlet 3.0 的 Web 服务器,因此如果我们尝试在 JAX-RS 应用程序上使用启动时加载 servlet 映射, Web 服务器(至少 jetty 是这样)会崩溃

"class is not a servlet"

因此拒绝加载应用程序。

问题的要点是 - 要加载上下文解析器,唯一可以完成的方法是通过 jax-rs Application 子类。

激活 Application 子类的方法在 Jetty 和 Tomcat/JBoss 上应该以类似的方式工作,因为我使用 jetty 进行开发(由于 GWT - 还有什么?)和 Tomcat/JBoss 进行生产。我希望避免为 jetty 和 tomcat 编写不同的加载器。

最佳答案

jax-rs 提供程序(如 cxf 或 resteasy)中已经存在启动 servlet 和上下文监听器,请仔细阅读文档

关于java - 如何在非 servlet 3.0/非 Java EE 6 中激活 jax-rs ContextResolver 和 Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11232209/

相关文章:

java - LockSupport 和 AbstractQueuedSynchronizer 使用的任何实际示例?

java - 未处理的异常类型 FileNotFoundException

c# - 为什么 Java 没有方法委托(delegate)?

apache - 是否有 James-3 的 war 文件可以将其部署在 glassfish/tomcat 中?

eclipse - 在一个项目中开发和调试 Eclipse Web 应用程序

java - 停止音乐并再次播放

java - 加载类时出错 [org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor]

java - 如何使 CXF 生成的代码解码为 JAX-B 并忽略未映射的字段?

java - 无论如何将构造函数参数传递给 JAXB 适配器?

java - 如何避免或重命名 jaxb 中的键和条目标签?