1

Ok。タイトルは本当にそれをすべて言います。

Java アプリケーションで呼び出している非常に大きな SOAP サーバーがあります。生活を楽にするために、wsimport を使用してサービスのソースと jar を生成しています。問題が発生しました。wsdl のすべての xsd:int 型は、整数型として必要なときに Java コードで int 型として解析されています。この理由は、int を null として設定する必要があるためですが、int 型を null にすることはできないため、それを行うことはできません。

私は現在、フィールドを手動で変更していますが、wsimport コマンドへの引数を通じてそれを行う簡単な方法があるかどうかを知りたいです。

これが私の現在の wsimport コマンドです。ありがとう

wsimport.exe -d E:\ServiceWSBuild -p com.example.wsdl -s E:\Service\src -verbose http://wsdl.example.com/?wsdl

以下は、これを行うカスタム タイプの 1 つの例でもあります。

 <xsd:complexType name="SubPackageSell">
  <xsd:complexContent>
   <xsd:extension base="tns:APIObject">
  <xsd:sequence>
   <xsd:element name="sp" type="tns:SubPackage"/>
   <xsd:element name="value" type="xsd:int"/>
   <xsd:element name="days" type="xsd:int"/>
   <xsd:element name="date" type="xsd:string"/>
   <xsd:element name="combine" type="xsd:boolean"/>
  </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
4

1 に答える 1

3

要素の場合minOccurs="0"、 wsimport を指定するとjava.lang.Integer、プリミティブの代わりに が生成されますintminOccursandのデフォルト値maxOccursは 1 です。これがプリミティブを取得する理由ですint。例えば:

<xsd:element name="value" type="xsd:int" minOccurs="0"/>
于 2013-07-23T21:00:55.037 に答える