0

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

@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 严重:捕获可抛出的 javax.xml.ws.WebServiceException:javax.xml.bind.MarshalException - 带有链接异常: [javax.xml.bind.JAXBException: 类 java.util.ArrayList 或其任何超类在此上下文中是已知的。] 在 com.sun.xml.ws.message.jaxb.JAXBMe​​ssage.writePayloadTo(JAXBMe​​ssage.java:322 ) 在 com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:108) 在 com.sun.xml 的 com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:142)。 ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:265) 在 com.sun.xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:320) 在 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)在 com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135) 在 com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)在 com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160) 在 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)java:244) 在 com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135) 在 com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate. java:129) 在 com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160) 在 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)java:244) 在 com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135) 在 com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate. java:129) 在 com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160) 在 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)160) 在 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)160) 在 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 对象是动态集合,我无法修复它的内容。

请指教,谢谢。

4

1 回答 1

1

_Contents成员需要一个@XmlAnyElement注释,但我对此不太熟悉。也许这篇文章会对您有所帮助:使用@XmlAnyElement 构建通用消息

于 2012-12-30T20:22:21.670 回答