0

私のWebサービスでは、クライアントのリクエストに応じてオブジェクトのコレクションを返したいと思います(文字列のコレクション、カスタムクラス..)、私のコード:

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

.....
}

ただし、文字列の ArrayList または Array を返そうとすると、次の例外が表示されます。

2012 年 12 月 30 日 5:49:21 PM com.sun.xml.ws.transport.http.servlet.WSServletDelegate doGet SEVERE: キャッチされたスロー可能な javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException - リンクされた例外: [javax.xml.bind.JAXBException: class java.util.ArrayList もそのスーパークラスもこのコンテキストに認識されていません。] com.sun.xml.ws.message.jaxb.JAXBMe​​ssage.writePayloadTo(JAXBMe​​ssage.java:322) ) com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:142) で、com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:108) で com.sun.xml で。 com.sun.xml.ws.transport.http の ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:265)。com.sun.xml.ws.transport.http の HttpAdapter.encodePacket(HttpAdapter.java:320)。 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 オブジェクトは動的コレクションであり、 content を修正できません。

アドバイスをください、ありがとう。

4

1 に答える 1

1

_Contents メンバーには@XmlAnyElementアノテーションが必要ですが、私はそれに慣れていません。この記事が役立つかもしれません: @XmlAnyElement を使用して汎用メッセージを作成する

于 2012-12-30T20:22:21.670 に答える