1

好的。标题真的说明了一切。

我在 Java 应用程序中调用了一个非常大的 SOAP 服务器。为了让我的生活更轻松,我一直在使用 wsimport 来生成服务的源代码和 jar。我刚刚遇到了一个问题。当我需要将 wsdl 中的所有 xsd:int 类型作为整数类型时,它们都被解析为 java 代码中的 int 类型。原因是我需要将一些 int 设置为 null,但由于 int 类型不能为 null,所以我不能这样做。

我目前正在检查并手动更改字段,但我想知道是否有更简单的方法可以通过 wsimport 命令的 agrument 来完成

这是我当前的 wsimport 命令。谢谢

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

这也是执行此操作的自定义类型之一的示例:

 <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 应该生成 ajava.lang.Integer而不是原语intminOccurs和的默认值为maxOccurs1,这就是您获得原始ints 的原因。例如:

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