0

尝试执行 JAX-RS GET 请求时出现以下错误:

MessageBodyReader not found for media type=text/plain, type=class com.intuit.accountant.services.common.cdm.Job, genericType=class com.intuit.accountant.services.common.cdm.Job

下面是我的代码:

Response response = target("jobs/Hello")
        .request()
        .header("intuit_offeringid", "testOfferingId")
        .header(RequestHeaders.REALM, CommonUtil.DEFAULT_REALM_ID_FOR_INTUIT_EMPLOYEE)
        .header(RequestHeaders.AUTH, "002923")
        .header(RequestHeaders.TICKET,"00303")
        .get(Response.class);

这个错误是什么意思?我怎样才能解决这个问题?

4

1 回答 1

1

您需要发布所有代码。该错误几乎肯定不会在您发布的代码示例中发生。get(Response.class) 将其转换为通用 http 响应,您可以在其中看到响应负载、状态、响应标头等。

您没有发布的内容很可能看起来像这样。response.readEntity(com.intuit.accountant.services.common.cdm.Job)

在这种情况下,您没有注册阅读器来将来自服务器的文本/纯文本响应转换为实体。我不知道响应是否应该是 json/xml 并且您正在接收文本,因为存在某种错误。您应该将响应检查为这样的文本,以查看您得到了什么。这可能会为您指明正确的方向。如果您要获取文本,则必须编写 MessageBodyReader 的实现以将纯文本转换为实体。

尝试这个...

System.out.println("Response body is " + response.getEntity(String.class));
于 2017-01-26T21:11:43.640 回答