简单的JAX-RS客户端 - Jersey的问题

时间:2014-04-09 15:47:18

标签: java jersey-2.0 jersey-client

我想创建一个简单的项目,以便在此项目和我在泽西岛创建的Web服务之间建立连接。

我的网络服务有以下服务:

http://localhost:8080/esinister/test/findtest?testnumber=12345. 

此服务的定义是:

@GET
@Path("findtest")
@Produces(MediaType.APPLICATION_XML)
public Customer findTest(@DefaultValue("") @QueryParam("testnumber") String clientNumber)

我想创建一个客户编号为12345(String)的应用程序。 我怎么能创造这个?

我以这种方式开始申请......

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Client client = ClientBuilder.newClient();
    WebTarget target = client.target("http://localhost:8080/esinister/test/findtest?testnumber=12345");
    javax.ws.rs.core.Response rs = target.request(MediaType.TEXT_PLAIN).get();
    System.out.println(rs.toString());
}

但我想我忘记了......

我的错误是:

InboundJaxrsResponse{ClientResponse{method=GET, uri= http://localhost:8080/esinister/test/findtest?testnumber=12345, status=406, reason=Inacceptable}}

你有个主意吗?

1 个答案:

答案 0 :(得分:0)

您的服务会生成XML响应。客户端无法读取此内容,因为您已将客户端中的响应类型设置为纯文本。您需要告诉客户端接受XML响应。您必须按如下方式调用服务:

javax.ws.rs.core.Response rs = target.request(MediaType.APPLICATION_XML).get();