我在尝试执行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);
这个错误是什么意思?我该如何解决这个问题?
答案 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));