Java 无法将应用程序部署到Jersey 2.X中的Jetty ServletContainer
在Jetty 1.X中,可以使用以下方法将Java 无法将应用程序部署到Jersey 2.X中的Jetty ServletContainer,java,rest,jersey,jetty,jax-rs,Java,Rest,Jersey,Jetty,Jax Rs,在Jetty 1.X中,可以使用以下方法将ServletContainer部署到Jetty: Application application = ... server.addServlet(new ServletHolder(new ServletContainer(application)), "/foo); 在Jersey 2.X中,ServletContainer类需要一个ResourceConfig,它是应用程序的子类。然而,前者是Jersey实现的一部分,而后者是JAX-RS规范的一
ServletContainer
部署到Jetty:
Application application = ...
server.addServlet(new ServletHolder(new ServletContainer(application)), "/foo);
在Jersey 2.X中,ServletContainer
类需要一个ResourceConfig
,它是应用程序的子类。然而,前者是Jersey实现的一部分,而后者是JAX-RS规范的一部分,这意味着到Jetty的部署现在取决于Jersey内部,这是我想要避免的
从泽西岛1号到泽西岛2号的迁移过程中是否遗漏了什么?也是泽西岛特有的。无论如何,您可以使用或直接从JAX-RS应用程序创建ResourceConfig
。那么您的代码将如下所示:
server.addServlet(新的ServletHolder)(
新ServletContainer(
ResourceConfig.forApplication(应用程序)))
,“/foo”);
为什么不通过类引用而不是对象实例添加servlet?(这就是WEB-INF/WEB.xml
的工作原理,Jersey必须支持这一点)我希望添加特定实例,而不是类,因为我希望能够很好地控制对象的构造方式。我的目标是完全避免对ResourceConfig的依赖,因为ResourceConfig是Jersey特定的类。使用您的解决方案不会消除这种依赖性。我理解您的意思。我的观点是,ServletContainer
也是特定于Jersey的,使用ResourceConfig
更方便。如果您想直接使用应用程序
,请随意创建拉取请求(,更好的方式)或提交改进()。为我的愚蠢道歉,您完全正确,因为这解决了我的问题:应用程序部署到的服务器实现的接口只能依赖于JAX-RS,而Jetty/Jersey实现可以依赖于Jersey特定的东西。