У нас есть реализация веб-службы, которая выбрасывает пользовательский SecurityException
.
public class SecurityException extends Exception {
Служба затем преобразуется в wsdl с помощью плагина maven java2ws
. Полученный файл .wsdl содержит
<xs:element name="SecurityException" type="tns:SecurityException"/>
<xs:complexType name="SecurityException">
...
<wsdl:message name="SecurityException">
<wsdl:part name="SecurityException" element="tns:SecurityException">
</wsdl:part>
</wsdl:message>
Теперь, если я запускаю wsdl2java
для файла .wsdl, я получаю SecurityException файл:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SecurityException")
public class SecurityException {
}
и SecurityException_Exception файл:
@WebFault(name = "SecurityException", targetNamespace = "http://service...../")
public class SecurityException_Exception extends Exception {
private ....SecurityException securityException;
public SecurityException_Exception() {
super();
}
public SecurityException_Exception(String message) {
super(message);
}
public SecurityException_Exception(String message, Throwable cause) {
super(message, cause);
}
public SecurityException_Exception(String message, ....SecurityException securityException) {
super(message);
this.securityException = securityException;
}
public SecurityException_Exception(String message, ....SecurityException securityException, Throwable cause) {
super(message, cause);
this.securityException = securityException;
}
public ....SecurityException getFaultInfo() {
return this.securityException;
}
}
Как я могу избежать ненужного класса? Почему это даже генерируется? Почему он не может просто воссоздать старый класс?
SecurityException extends Exception
(мы используем cxf версии 2.5, поэтому ошибка <2.3 с суперклассами, которую я обнаружил в Google, похоже, не применима) </p>