ClientHandlerException-泽西岛

时间:2018-12-19 01:55:19

标签: java jersey

我通过使用 jerseyclient 发出发帖请求时遇到错误。谁能看看下面的错误?非常感谢您的反馈。

这是我作为 pom.xml

中的依赖项包括的内容
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-moxy</artifactId>
    </dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>2.19</version>
</dependency>

错误如下:

  

com.sun.jersey.api.client.ClientHandlerException:com.sun.jersey.api.client.ClientHandlerException:Java类型,类java.lang.String和MIME媒体类型application / json的消息正文编写器, 没找到   web_1 |在com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)   web_1 |在com.sun.jersey.api.client.Client.handle(Client.java:648)   web_1 |在com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)   web_1 |在com.sun.jersey.api.client.WebResource.access $ 200(WebResource.java:74)   web_1 |在com.sun.jersey.api.client.WebResource $ Builder.post(WebResource.java:563)   web_1 |在 。handler.request.WrapperHandler.startWrapper(WrapperHandler.java:65)   web_1 |在 。handler.request.WrapperTask.call(WrapperTask.java:35)   web_1 |在 。handler.request.WrapperTask.call(WrapperTask.java:8)   web_1 |在java.util.concurrent.FutureTask.run(FutureTask.java:262)   web_1 |在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)   web_1 |在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:622)   web_1 |在java.lang.Thread.run(Thread.java:748)   web_1 |引起原因:com.sun.jersey.api.client.ClientHandlerException:找不到Java类型类java.lang.String和MIME媒体类型application / json的消息正文编写器   web_1 |在com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:288)   web_1 |在com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)   web_1 |在com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)

这是发出发布请求的代码。

ClientConfig cc = new DefaultClientConfig();
Client client = Client.create(cc);

WebResource webResource = client.resource(URL.replaceAll(" ", "%20"));
ClientResponse response = webResource
.accept("application/json")
.type("application/json")
.post( ClientResponse.class, parameters.toString() );

String serverOutput = response.getEntity(String.class);
System.out.println("server output=" + serverOutput);

1 个答案:

答案 0 :(得分:0)

您需要将json解析器添加到默认客户端

apiClient是了解json对象的代码。

JacksonJsonProvider jsonProvider =新的JacksonJsonProvider(apiClient.getObjectMapper());     DefaultClientConfig defaultClientConfig =新的DefaultClientConfig();     defaultClientConfig.getSingletons()。add(jsonProvider);