Ok. Название действительно говорит все.wsimport bind xsd: int в Integer вместо int
У меня очень большой SOAP-сервер, который я вызываю в приложении Java. Чтобы облегчить мою жизнь, я использовал wsimport для генерации источника и банку для службы. Я просто столкнулся с проблемой. Все типы xsd: int в wsdl анализируются как типы int в java-коде, когда они мне нужны как типы Integer. Причина для этого - некоторые из int, которые мне нужно установить как null, но поскольку типы int не могут быть null, я не могу этого сделать.
я в настоящее время переживает и вручную изменять поля, но я хочу знать, если есть более простой способ сделать это через agrument к команде 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>
Атрибуты с 'использованием =«требуется»' будет примитивным 'int', в противном случае они будут' java.lang.Integer' – DannyMo
я добавил пример одного из сложных типов. Как видите, в атрибутах нет указаний. – Pyromanci
Извините, предполагается, что вы использовали атрибуты, а не элементы. См. Мой ответ ниже – DannyMo