不支持的媒体类型(415) - 输入java列表

时间:2011-06-22 20:17:09

标签: java jersey jax-rs

我在HTTP放置列表时收到不支持的媒体类型。我的代码如下:

客户端

Client postClient = getClient();
WebResource postWebResource = postClient.resource(DEV_URI+"caches1");
Builder requestBuilder = postWebResource.type(MediaType.APPLICATION_JSON);  
requestBuilder.accept(MediaType.APPLICATION_JSON);
requestBuilder.header("accessor", "1011181517"); 
List<MyEntity> list = new ArrayList<MyEntity>();
MyEntity mapObj = new MyEntity();
mapObj.setId("xxxxxxxxxx");
mapObj.setBookId("xxxxxxxxxxx");
list.add(mapObj);
GenericEntity<List<FacebookEbayMap>> entity = new GenericEntity<List<FacebookEbayMap>>(list) {};
ClientResponse response = requestBuilder.put(ClientResponse.class, entity);

接口

@PUT
@Path("caches1")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response refreshUserCache1(List<MyEntity> userIdMap,
                                  @Context UriInfo uriInfo,
                                  @Context HttpHeaders httpHeaders);

资源

public Response refreshUserCache1(List<MyEntity> userIdMap,
    UriInfo uriInfo, HttpHeaders httpHeaders) {
        return Response.ok("", MediaType.APPLICATION_JSON).build();
    }

我在客户端和服务器端尝试使用和不使用GenericType。有人可以帮忙吗?

异常

服务器拒绝了此请求,因为请求实体的格式不受请求方法所请求的资源支持(不支持的媒体类型)。

2 个答案:

答案 0 :(得分:1)

正确更新jar文件。例如,如果有3个名为A,B和C的应用程序,那么您在应用程序A中导出一个jar文件,并且您要在其余的应用程序B和C中导入该文件,那么每当您必须正确更新jar文件正在更改属于jar文件的类。

答案 1 :(得分:1)

确保你在lib / classpath中有mimepull.jar。