确定。标题真的说明了一切。
我有一个非常大的SOAP服务器,我在java应用程序中调用。为了让我的生活更轻松,我一直在使用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>
答案 0 :(得分:3)
对于元素,请指定minOccurs="0"
,wsimport应生成java.lang.Integer
而不是原始int
。 minOccurs
和maxOccurs
的默认值为1,这就是您获得原始int
的原因。例如:
<xsd:element name="value" type="xsd:int" minOccurs="0"/>