java - 未找到 com.sun.jersey.core.util.MultivaluedMapImpl 类和 MIME 媒体类型 application/json

标签 java json maven jersey

这是我的测试

final Client client = Client.create();
final WebResource webResource = client.resource(ORDER_API);
final MultivaluedMap<String, String> formData = new MultivaluedMapImpl();
formData.add("name", "Autobot-00");
formData.add("resExpiryKey", "19000");

final ClientResponse response = webResource.type(MediaType.APPLICATION_JSON)
        .header("Content-Type", MediaType.APPLICATION_JSON).post(ClientResponse.class, formData);
assertEquals(response.getStatus(), 200);

我的 pom.xml 看起来像

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.18.1</version>
    <scope>test</scope>
</dependency>  

当我运行测试时,我看到以下内容

com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class com.sun.jersey.core.util.MultivaluedMapImpl, and MIME media type, application/json, was not found
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
    at com.sun.jersey.api.client.Client.handle(Client.java:652)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
    at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)

缺少什么?

最佳答案

当您使用 MultivaluedMap 时,您应该使用

.type(MediaType.APPLICATION_FORM_URLENCODED)
而不是
.type(MediaType.APPLICATION_JSON)

关于java - 未找到 com.sun.jersey.core.util.MultivaluedMapImpl 类和 MIME 媒体类型 application/json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798308/

相关文章:

java - 如何使用 JsonPath 从 json 中查找给定键的值?

json - Grafana Alert Webhook - 可能的状态是什么?

maven - 在 Maven 中为多个存储库设置单个服务器凭据

java - 新建maven项目

java - Android - 获取所有联系人列表时出错

java - 如何使用 Spring Security 创建注销?

java - SAX - 无需 CDATA 即可读取 HTML 内容

json - 预期解码 Dictionary<String, Any> 但发现一个数组而不是嵌套容器

javascript - AngularJS:一次加载所有数据作为 JSON 与使用数据库并仅加载部分数据。什么是更好的?

java - 覆盖 web.xml 上下文参数