找不到媒体类型= text / xml的MessageBodyReader

时间:2020-05-16 23:18:41

标签: java jax-ws jersey-2.0

无法读取响应,在行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>

0 个答案:

没有答案