У меня есть служба SOAP в приложении JavaEE, работающая на JBOSS EAP7 и JDK1.8. Служба может выдавать пользовательские исключения (например, InvalidInputException, NotFoundException и т. Д. c ..)
Все классы пользовательских исключений расширяются java .lang.Exception class.
Сгенерированный wsdl поскольку служба работала нормально, когда мы использовали JBOSS EAP6 и JDK1.7, когда мы переключились на jdk1.8 и EAP7.2, мы начали получать ошибку при попытке импортировать wsdl в SOAPUI или другие инструменты.
Ошибка: «Тип« сообщения »несовместим с другим элементом с таким же именем в этой модели содержимого».
После исследования я заметил, что в новом wsdl было создано 2 элемента для « сообщение »из класса Exception. Один из них - строка, а другой - логическое значение, которое вызывает эту проблему.
<xs:complexType name="NotFoundException">
<xs:sequence>
<xs:element minOccurs="0" name="warning" type="xs:boolean"/>
<xs:element minOccurs="0" name="confirm" type="xs:boolean"/>
<xs:element minOccurs="0" name="error_code" type="xs:string"/>
<xs:element minOccurs="0" name="warning_msg" type="xs:string"/>
<xs:element minOccurs="0" name="error_type" type="xs:string"/>
<xs:element minOccurs="0" name="message" type="xs:boolean"/>
<xs:element minOccurs="0" name="error_msg" type="xs:string"/>
<xs:element minOccurs="0" name="httpStatusCode" type="xs:int"/>
<xs:element minOccurs="0" name="error" type="xs:boolean"/>
<xs:element minOccurs="0" name="error_detail" type="xs:string"/>
<xs:element minOccurs="0" name="exception" type="xs:boolean"/>
<xs:element minOccurs="0" name="message" type="xs:string"/>
</xs:sequence>
</xs:complexType>
В предыдущей версии было только 1 "поле сообщения, которое является строкой.
Это что-то новое в классе исключений в JDK1.8? Как исключить логическое поле "сообщения" из службы wsdl?