Java wsimport将xsd:int绑定到整数而不是int

Java wsimport将xsd:int绑定到整数而不是int,java,wsimport,Java,Wsimport,嗯。标题真的说明了一切 我在java应用程序中调用了一个非常大的SOAP服务器。为了让我的生活更轻松,我一直在使用wsimport为服务生成源代码和jar。我只是遇到了一个问题。当我需要它们作为整数类型时,wsdl中的所有xsd:int类型在java代码中都被解析为int类型。原因是我需要将一些int设置为null,但由于int类型不能为null,所以我不能这样做 我目前正在查看并手动更改字段,但我想知道是否有更简单的方法可以通过对wsimport命令的访问来完成 这是我当前的wsimport命

嗯。标题真的说明了一切

我在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
下面是一个执行此操作的自定义类型的示例:

 <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>

对于元素,指定
minOccurs=“0”
,wsimport应该生成
java.lang.Integer
而不是原语
int
minOccurs
maxOccurs
的默认值为1,这就是为什么要得到primitive
int
s。例如:

<xsd:element name="value" type="xsd:int" minOccurs="0"/>


带有
use=“required”
的属性将是一个基元
int
,否则它们将是
java.lang.Integer
我添加了一个复杂类型的示例。正如您所看到的,atributes中没有列出必需项。抱歉,假设您使用的是属性而不是元素。下面是我的答案,所以基本上都取决于wsdl。。这意味着您无法控制客户端代码(例如)的生成方式。