JAX-RS Jersey XML <-> java.util.List
我尝试访问一个JAX-RS Web服务,该服务以XML返回值的java.util.list,但在客户端出现javax.xml.bind.UnmarshalException ...
Web服务方法:
1 2 3 4 5 6 | @GET @Path("/getMessdaten") @Produces(MediaType.APPLICATION_XML) public List<MessdatenPCommon> getMessdatenValues() throws Exception { List<MessdatenPCommon> messdatenPList = testBean(); return MessdatenPCommonList;} |
客户端中的访问代码:
1 | List<MessdatenPCommon> m = webResource.path("test").path("helloworld/getMessdaten").accept(MediaType.APPLICATION_XML).et(new GenericType<List<MessdatenPCommon>>() {}); |
客户端中的异常:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Exception in thread"main" javax.ws.rs.WebApplicationException: javax.xml.bind.UnmarshalException - with linked exception: [com.sun.istack.internal.SAXParseException2; lineNumber: 1; columnNumber: 89; Unable to create an instance of xx.xxxx.xxx.xxx.xxxxx.xxxx.MessdatenPCommon] at com.sun.jersey.core.provider.jaxb.AbstractListElementProvider.readFrom(AbstractListElementProvider.java:251) at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:553) at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:523) at com.sun.jersey.api.client.WebResource.handle(WebResource.java:686) at com.sun.jersey.api.client.WebResource.access$300(WebResource.java:74) at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:508) at appclient.TestClient.main(TestClient.java:31) Caused by: javax.xml.bind.UnmarshalException - with linked exception: [com.sun.istack.internal.SAXParseException2; lineNumber: 1; columnNumber: 89; Unable to create an instance of xx.xxxxx.xxx.xxx.xxxxx.xxxxx.MessdatenPCommon] at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unknown Source) at com.sun.jersey.core.provider.jaxb.AbstractListElementProvider.readFrom(AbstractListElementProvider.java:234) ... 6 more Caused by: com.sun.istack.internal.SAXParseException2; lineNumber: 1; columnNumber: 89; Unable to create an instance of xx.xxxx.xxx.xxx.xxxx.xxxx.MessdatenPCommon at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(Unknown Source) .... |
MessdatenPCommon类:
1 2 3 4 5 6 7 8 9 10 | @XmlSeeAlso({ MessdatenPv.class }) @XmlType public abstract class MessdatenPCommon extends xx.xxxx.xxx.xxx.AbstractEntityBase { private static final long serialVersionUID = 1L; public abstract BigDecimal getNum(); public abstract ... } |
有人可以帮我吗?
谢谢!
我假设您期望接收到
您可以编组数据以查看取消编组的期望。