Java 获取客户端上PUT请求的状态
我在服务器端使用Jersey定义了一个Web服务,如下所示:Java 获取客户端上PUT请求的状态,java,web-services,jersey,Java,Web Services,Jersey,我在服务器端使用Jersey定义了一个Web服务,如下所示: @POST @Consumes(MediaType.APPLICATION_XML) @Path("/foo") public Response bar(List<Foo> listFoo) { try { //save the resource } catch (Exception e) { log.error("Error saving", e);
@POST
@Consumes(MediaType.APPLICATION_XML)
@Path("/foo")
public Response bar(List<Foo> listFoo) {
try {
//save the resource
} catch (Exception e) {
log.error("Error saving", e);
return Response.status(Status.INTERNAL_SERVER_ERROR).build();
}
return Response.status(Status.OK).build();
}
Response response = ws.type(MediaType.APPLICATION_XML).post(Response.class,list);
但我得到了一个错误:
A message body reader for Java class javax.ws.rs.core.Response, and Java type class javax.ws.rs.core.Response, and MIME media type application/xml was not found javax.ws.rs.core.Response
我真的不需要响应对象,只需要状态码,我怎么才能得到它?添加
@将注释添加到web服务中,并将参数添加到bar()
方法中,因为您正试图在其中放置一些名为list
的对象
我建议您改用@POST
,因为canonical@PUT
不会返回响应
UPD。顺便说一下,您的实体是空的-您最好删除@products
注释,然后返回Response
,并设置其状态
UPD2。并从客户端删除.accept(MediaType.APPLICATION\u XML)
方法。好的,我通过更改请求-响应类型解决了这个问题:
Response response = ws.type(MediaType.APPLICATION_XML).post(Response.class,list);
与
作为ClientResponse
acom.sun.jersey.api.client.ClientResponse
它产生了什么>?一个javax.rs.core.ResponseAh,好的,对不起!MediaType.APPLICATION\xml谢谢,经过测试,但我得到了相同的结果。列表很好,如果我返回一个“OK”字符串而不是响应,就可以了。我会更新这个问题。我会在客户端得到它。如果我在服务器端调试,我会看到进程接收到调用并正常执行,发送Status.OK响应。更改完成,现在消息更改为:Java类javax.ws.rs.core.Response的消息体读取器,Java类型类javax.ws.rs.core.Response,未找到MIME媒体类型应用程序/八位字节流
ClientResponse response = ws.type(MediaType.APPLICATION_XML).post(ClientResponse.class,list);