以前我们为项目的不同组件使用 Jersey 1.17 和 org.apache.cxf 2.6.0 版本。现在我们的项目迁移到 Jersey 1.19.4 和 cxf 3.2.6 。我看到 jersey 1.19.4 持有 javax.ws.rs:jsr311-api:jar:1.1.1 而 cxf 3.2.6 持有 javax.ws.rs:javax.ws.rs-api:jar:2.1 。所有组件都编译成功,没有任何故障。但是在应用程序中,我们面临以下问题:-
2018 年 10 月 17 日上午 10:29:08 org.apache.catalina.core.StandardWrapperValve 调用严重:Servlet.service() for servlet [CA Service REST API] in context with path [/caservice] throw exception [Servlet execution throw an异常] 根本原因 java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; 在 javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:120) 在 com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:669) 在 javax.servlet.http.HttpServlet .service(HttpServlet.java:742) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 在 org.apache.catalina.core.ApplicationFilterChain。
How We resolve this issue ?
升级后这是我的依赖树结构
+- org.apache.cxf:cxf-core:jar:3.2.6:compile
[INFO] | | +- com.fasterxml.woodstox:woodstox-core:jar:5.1.0:compile
[INFO] | | | \- org.codehaus.woodstox:stax2-api:jar:4.1:compile
[INFO] | | \- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.3:compile
[INFO] | +- org.apache.cxf:cxf-rt-rs-client:jar:3.2.6:compile
[INFO] | | \- org.apache.cxf:cxf-rt-frontend-jaxrs:jar:3.2.6:compile
[INFO] | | +- javax.ws.rs:javax.ws.rs-api:jar:2.1:compile
[INFO] | | \- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] | +- org.apache.cxf:cxf-rt-transports-http:jar:3.2.6:compile
+- com.sun.jersey:jersey-core:jar:1.19.4:compile
[INFO] | \- javax.ws.rs:jsr311-api:jar:1.1.1:compile