3

次のコマンドを使用してスタブを生成しました

軸: java org.apache.axis.wsdl.WSDL2Java CrmDiscoveryServiceWsdl.xml : すべてのクラスを生成します

Axis2 : wsdl2java.bat -u -uri CrmDiscoveryServiceWsdl.xml : いくつかのクラスのみを生成します。

       Pattern I observed is, in the wsdl:types section, it has created classes for the <s:element> types but not  <s:complexTypes>. I don't get why. I have to use those complexType elements to consume webservice.

-pn、-ap オプションも試してみましたが、うまくいくかもしれないと思っていましたが、ポートはこれとは何の関係もありませんでした。やってから分かりました。

注: サーバー側も生成する -ss -g オプションを使用すると、Axis2 ですべてを生成できました。明らかに、これは回避策であり、少なくともいくつかは必要ありません。

助けてください。

ありがとう。

4

1 に答える 1

1

これもちょっと違うことに気付きました。Great Plains 10 に対して Axis2 1.6 でスタブを生成すると、一部の型が欠落していました。それらはすべて、スキーマ定義の他の型から派生した xsd 複合型でした。これは、これらの欠落しているタイプを含む応答を解析するときにのみエラーを引き起こしました。エラーは ExtensionMapper からスローされました。

「-g」オプションを使用して生成した後、(欠落しているこれらの派生型を含む) より多くの型が ExtensionMapper に含まれ、問題が修正されます。

サーバー側のコードを生成することが、adb Bean を適切に解析および生成することと何の関係があるのか​​ はわかりませんが、現在は機能しています。

Apache Axis JIRA には、-g を使用する場合と使用しない場合で異なる Bean について言及しているバグもあります: http://issues.apache.org/jira/browse/AXIS2-3988

于 2011-08-16T23:25:41.480 に答える