是否可以使用Jersey 2.x和RESTEasy依赖项目?

Dan*_*iel 4 java rest jersey resteasy maven

我正在开发一个项目,该项目使用各种客户端应用程序作为maven依赖项来与不同的REST API进行通信.

但是当包含使用Jersey 2.x实现的客户端和使用RESTEasy的任何其他客户端时存在问题.

只要我添加使用RESTEasy的依赖项,我就会收到这样的错误:

javax.ws.rs.ProcessingException:无法在org.jboss.resteasy找到内容类型的应用程序/ JSON和类型的类de.fhg.ipa.vfk.docker.dockerregistry.restclient.entity.SearchResult的化MessageBodyReader所致. core.interception.ClientReaderInterceptorContext.throwReaderNotFound(ClientReaderInterceptorContext.java:39)org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader(AbstractReaderInterceptorContext.java:73)at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed( AbstractReaderInterceptorContext.java:50)在org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:245)在org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readEntity(ClientResponse.java: 179)at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:211)at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:104)... 4更多

或这个:

javax.ws.rs.ProcessingException:由造成无法找到内容类型的应用程序/焦油型作家:在org.jboss.resteasy.core.interception.ClientWriterInterceptorContext.throwWriterNotFoundException java.io.FileInputStream中(ClientWriterInterceptorContext.java:40)在org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.getWriter(AbstractWriterInterceptorContext.java:138)在org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:117)在org.jboss.resteasy.client .jaxrs.internal.ClientInvocation.writeRequestBody(ClientInvocation.java:341)在org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.writeRequestBodyToOutputStream(ApacheHttpClient4Engine.java:558)在org.jboss.resteasy.client.jaxrs.engines .ApacheHttpClient4Engine.buildEntity(ApacheHttpClient4Engine.java:524)位于org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.loadHttpMethod(ApacheHttpClient4Engine.java:423)org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine. java:281)...还有7个

有可能使用这两个库或以某种方式配置maven,以便应用程序不会尝试使用RESTEasy依赖项而不是Jersey 2.x,反之亦然?

谢谢

丹尼尔

Har*_*ann 7

您可以尝试使用Maven配置文件来激活Jersey或RESTEasy,但是您不能同时在同一个平面类路径中使用两个JAX-RS实现.

如果必须在一个应用程序中同时使用这两种实现,则需要由OSGi或JBoss模块等模块系统提供的类加载器隔离.

去也许是最好的方式来重构你的代码只使用JAX-RS 2.0客户端API和满足于任何新泽西的RESTEasy为极端情况需要具体实现的API.