我无法从java客户端中的javax.ws.rs.core.Response读取实体消息

时间:2013-09-19 09:10:08

标签: java jax-rs restful-authentication

嗨我在apache tomee.i中使用jax-rs创建了restful服务器和客户端从服务器返回状态和实体,我正在读取成功,但我无法从响应对象中读取实体。

这是我在服务器端Rest的代码。

@Path("/login")
@POST
public javax.ws.rs.core.Response login(String user,@Context HttpServletRequest  request,@Context HttpServletResponse response)throws ServletException, IOException 
{
    int sc=200;
    //this above status code i am changing base on the error
    return  javax.ws.rs.core.Response.status(sc).entity("error on server side").type(MediaType.TEXT_PLAIN).build();
}

我创建了用于在java中调用上述服务的客户端

   Response response=WebClient.create("http://myserver:8080/Snefocare").path("/User/login").post(user);
System.out.println("the status is "+response.getStatus());          
System.out.println("the metadata is "+response.getEntity());
System.out.println("the entity "+response.getEntity());   

以上代码的输出

    the status is 200
    the metadata is sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@294c4c55
    the entity sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@294c4c55

我不知道为什么实体会以其他形式打印。

1 个答案:

答案 0 :(得分:0)

响应实体是InputStream,从这一行开始应该很明显;

the entity sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@294c4c55

您是否尝试过阅读此流?