从JAX_WS Web服务返回一组对象

时间:2012-12-30 19:04:06

标签: java jax-ws

在我的Web服务中我想返回一个对象集合取决于客户端请求的例子(字符串集合,自定义类..), 我的代码:

@XmlRootElement(name="ResultObject")
public class ResultObject
{
private Object _Contents;  // this object should contain the collection
private int _ErrorCode;

.....
}

但是当尝试返回ArrayList或字符串数​​组时,会出现以下异常:

  

2012年12月30日下午5:49:21   com.sun.xml.ws.transport.http.servlet.WSServletDelegate doGet SEVERE:   抓住了throwable javax.xml.ws.WebServiceException:   javax.xml.bind.MarshalException     - 链接异常:[javax.xml.bind.JAXBException:类java.util.ArrayList也不知道它的任何超类   上下文。]         at com.sun.xml.ws.message.jaxb.JAXBMe​​ssage.writePayloadTo(JAXBMe​​ssage.java:322)         at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:142)         在com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:108)         在com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:265)         在com.sun.xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:320)         at com.sun.xml.ws.transport.http.HttpAdapter.access $ 100(HttpAdapter.java:93)         在com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle(HttpAdapter.java:454)         在com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)         at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)         at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)         at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)         at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)         在javax.servlet.http.HttpServlet.service(HttpServlet.java:641)         在javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

在搜索解决方案后,一些帖子建议使用注释,但_Contents对象是动态集合,我无法修复它的内容。

请咨询,谢谢。

1 个答案:

答案 0 :(得分:1)

内容成员需要@XmlAnyElement注释,但我对此并不熟悉。也许这篇文章会对您有所帮助:Using @XmlAnyElement to Build a Generic Message