无法读取响应,在行response.readEntity(VendorResponse.class)
上获得了MessageBodyProviderNotfoundException。不知道这里缺少什么。
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/xml, type=class com.test.services.payment.connector.domain.xml.Response, genericType=class com.test.services.payment.connector.domain.xml.Response.
at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:208)
at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:132)
at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1071)
at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:850)
at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:784)
at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:297)
at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:91)
代码段:
try {
WebTarget queryWebTarget = client.target("SomeURL");
jax.ws.rs.core.Response response = queryWebTarget.property("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8").request().post(
Entity.entity("some xmlRequest" , MediaType.APPLICATION_FORM_URLENCODED));
VendorResponse vendorResponse = response.readEntity(VendorResponse.class);
} catch (Exception e) {
System.out.println("errors is "+ e);
}
@XmlType(name = "", propOrder = {
"result"
})
@XmlRootElement(name = "Response")
public class VendorResponse {
@XmlElement(name = "Result", required = true)
protected ResponseResult result;
public ResponseResult getResult() {
return result;
}
public void setResult(ResponseResult value) {
this.result = value;
}
}
响应
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Result response="SYNC" count="1">
<Status>Success</Status>
</Result>
</Response>