Java Jersey客户端和CXF混合(多部分问题)
我有一个混合了CXF和jersey客户端的遗留应用程序。 当我使用Jersey客户端但CXF接管时。Java Jersey客户端和CXF混合(多部分问题),java,spring,rest,jersey,cxf,Java,Spring,Rest,Jersey,Cxf,我有一个混合了CXF和jersey客户端的遗留应用程序。 当我使用Jersey客户端但CXF接管时。 Response response = client .target("http://example.com") .register(MultiPartFeature.class) //error when run this line .request(MediaType.APPLICATION_JS
Response response = client
.target("http://example.com")
.register(MultiPartFeature.class) //error when run this line
.request(MediaType.APPLICATION_JSON )accept type
.put(Entity.entity(request, mediaType), Response.class);
使用jersey客户端从jersey服务器检索多部分时,此操作由cxf处理并抛出错误:
java.lang.RuntimeException: java.lang.InstantiationException: org.glassfish.jersey.media.multipart.internal.FormDataParamValueFactoryProvider
21:09:51,574 INFO [stdout] (default task-31) at org.apache.cxf.jaxrs.impl.ConfigurationImpl.createProvider(ConfigurationImpl.java:208) ~[cxf-rt-frontend-jaxrs-3.1.5.jar:3.1.5]
21:09:51,574 INFO [stdout] (default task-31) at org.apache.cxf.jaxrs.impl.ConfigurationImpl.register(ConfigurationImpl.java:176) ~[cxf-rt-frontend-jaxrs-3.1.5.jar:3.1.5]
21:09:51,574 INFO [stdout] (default task-31) at org.apache.cxf.jaxrs.impl.ConfigurableImpl.register(ConfigurableImpl.java:91) ~[cxf-rt-frontend-jaxrs-3.1.5.jar:3.1.5]
21:09:51,574 INFO [stdout] (default task-31) at org.apache.cxf.jaxrs.impl.ConfigurableImpl.doRegister(ConfigurableImpl.java:117) ~[cxf-rt-frontend-jaxrs-3.1.5.jar:3.1.5]
21:09:51,574 INFO [stdout] (default task-31) at org.apache.cxf.jaxrs.impl.ConfigurableImpl.register(ConfigurableImpl.java:108) ~[cxf-rt-frontend-jaxrs-3.1.5.jar:3.1.5]
有一个问题
使用
JerseyClientBuilder
而不是ClientBuilder
。后者将默认使用CXF客户端。不要使用JerseyClientBuilder.newClient()
。它继承自ClientBuilder
(它扩展了JerseyClientBuilder
),因此它具有前面提到的默认使用CXF的行为。使用JerseyClientBuilder.createClient()
或实例化该生成器,对其调用一些方法,然后调用build()
。您可以查看。使用Jersey ClientBuilder而不是ClientBuilder。后者将默认使用CXF客户端。我尝试使用JerseyClientBuilder,但再次失败。出现了相同的错误@PaulSamsothaCan您是否可以用您正在使用的代码更新您的帖子?Response-Response=JerseyClientBuilder.newClient().target(“http://example.comregister(JacksonFeature.class).register(MultiPartFeature.class)/**与uppose.request(MediaType.APPLICATION_JSON)相同的错误//添加请求头accept type.put(Entity.Entity(request,mediaType),Response.class)//建立Http-Put方法
@PaulSamsotha因相同的错误而失败。请不要使用newClient()
。这是从ClientBuilder
继承的,它具有我所指的默认行为。使用JerseyClientBuilder.createClient()
或实例化该生成器,对其调用一些方法,然后调用`build()。你可以看看Hello Paul,你是怎么做到的?链接断开(未找到页面)@codesave我更新了它谢谢你@Paul,你也能检查一下这个吗?关于泽西岛: