【问题标题】:Simple JAX-RS Client - Issue with Jersey简单的 JAX-RS 客户端 - 泽西岛问题
【发布时间】:2014-04-09 15:47:17
【问题描述】:

我想创建一个简单的项目,以便在该项目和我在泽西岛创建的 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(字符串)。 我怎么能创造这个?

我就是这样开始申请的……

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}}

你有想法吗?

【问题讨论】:

  • 有什么问题?您的 findTest 方法永远不会被调用?发生异常?
  • 我想了解如何获得响应并仅打印!

标签: java jersey-2.0 jersey-client


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2014-05-22
    • 2011-05-02
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多