JAX-RS GET:找不到媒体类型= text / plain的MessageBodyReader

时间:2017-01-20 17:29:02

标签: jersey javax

我在尝试执行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);

这个错误是什么意思?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要发布所有代码。您发布的代码示例中几乎肯定不会发生错误。 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));