簡體   English   中英

使用CDI將Jersey 1.x轉換為2.x

[英]Jersey 1.x to 2.x using CDI

我正在使用當前的Jersey 1.17和CDI(焊接2.4.1)進行網絡服務。 我在Tomcat8上運行。 我的ContextListener和資源類已成功注入帶有@Inject服務實現。 我正在嘗試遷移到Jersey 2.x,但遇到了障礙。

我唯一需要更改的地方是在pom.xmlweb.xml

-        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
+        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
-            <param-name>com.sun.jersey.config.property.packages</param-name>
+            <param-name>jersey.config.server.provider.packages</param-name>

盡管我的ContextListener是事實,但我的資源類不再被注入。 我看到以下內容:

26-May-2017 12:03:42.596 WARNING [http-nio-8888-exec-2] org.glassfish.jersey.internal.Errors.logErrors The following warnings have been detected: WARNING: Unknown HK2 failure detected:
MultiException stack 1 of 3
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=PlatformService,parent=PlatformResource,qualifiers={},position=-1,optional=false,self=false,unqualified=null,379054017)

我看到Weld日志消息,表明Weld看起來很高興,但我真的很茫然。

2017-05-26 12:03:19,870 [RMI TCP Connection(2)-127.0.0.1] INFO  o.j.w.e.servletWeldServlet {} - WELD-ENV-001008: Initialize Weld using ServletContainerInitializer 
2017-05-26 12:03:19,894 [RMI TCP Connection(2)-127.0.0.1] INFO  o.j.w.Version {} - WELD-000900: 2.4.1 (Final) 
2017-05-26 12:03:20,173 [RMI TCP Connection(2)-127.0.0.1] INFO  o.j.w.Bootstrap {} - WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously. 
2017-05-26 12:03:20,503 [RMI TCP Connection(2)-127.0.0.1] INFO  o.j.w.e.servletTomcat {} - WELD-ENV-001100: Tomcat 7+ detected, CDI injection will be available in Servlets, Filters and Listeners. 

添加此依賴性似乎已經解決了該問題。

<dependency>
    <groupId>org.glassfish.jersey.ext.cdi</groupId>
    <artifactId>jersey-cdi1x</artifactId>
    <version>2.23</version>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM