0

だから私はJavaでSOAPサービスを生成するコードの一部を持っていて、Tomcat/Axis2サーバー上のJythonを介していくつかのPythonコードをラップしています...そしてそれは動作します!

を返すメソッドがあります

   public static List<MyClass> doSomething()

しかし、Soapの回答から、空のデータしか得られません:

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
   <soapenv:Body>
      <ns:doMyServiceResponse xmlns:ns="http://mypyinterface" xmlns:ax23="http://mypyinterface/xsd">
     <ns:return xsi:type="ax23:MyClass" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ns:return xsi:type="ax23:MyClass" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ns:return xsi:type="ax23:MyClass" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ns:return xsi:type="ax23:MyClass" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ns:return xsi:type="ax23:MyClass" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ns:return xsi:type="ax23:MyClass" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ns:return xsi:type="ax23:MyClass" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
      </ns:doMyServiceResponse >
   </soapenv:Body>
</soapenv:Envelope>

axis2 の複合型のような Web 上の主題に関する多くの投稿を見つけました- Map 、Java で Web サービスを使用して複合オブジェクトの配列またはコレクションを送信するにはどうすればよいですか (Axis2 など)? 多くの人は、戻り値としてListを取得することはできず、 Arrayのみを取得できると言っています。

しかし、上記の結果が実際には正しい要素数を持つ空のリストであることに気付いたので、理解できません。結果としてList< String >を生成することを決定した場合、正しい値が得られます (それはList 内で単純な < String > Java 型を使用していますか?) Array または ArrayList に何も変更せずに (List を生成できないことを読みましたが)

他の何かを見逃しているかもしれませんが、忘れているかもしれないトリックはありますか? MyClass を java.io.Serilizable に変更したり、Axis2 が XML 出力 SOAP ストリームで正しい値を取得/生成するために使用できる特定のメソッドを提供したりしますか?

また、リストを生成する Axis2 を介して返信することは可能ですか?

4

1 に答える 1

1

いいえ、これは不可能です。この質問に対する以前の回答は、こちらで読むことができます

あなたの場合、次のように戻ります。

public static MyClass[] doSomething()

List.toArray() に魔法をかけてもらいましょう!

于 2013-02-21T13:24:48.700 に答える