好。标题确实说明了一切。
我有一个在Java应用程序中调用的超大型SOAP服务器。为了使生活更轻松,我一直在使用wsimport生成服务的源代码和jar。我只是遇到一个问题。当我需要将wsdl中的所有xsd:int类型作为Integer类型时,都将它们解析为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,这就是为什么要获取原始int
的原因。例如:
<xsd:element name="value" type="xsd:int" minOccurs="0"/>