我们有一个抛出自定义 SecurityException
的 Web 服务实现。 .
public class SecurityException extends Exception {
然后使用 maven 插件
java2ws
将服务转换为 wsdl .生成的 .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 文件上,我得到一个 安全异常 文件:@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SecurityException")
public class SecurityException {
}
和 安全异常_异常 文件:
@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;
}
}
我怎样才能避免不必要的类(class)?为什么它甚至会生成?为什么它不能重新创建旧类?
SecurityException extends Exception
(我们使用的是 cxf 2.5 版,所以我发现 googleing 的 <2.3 父类(super class)错误似乎并不适用)
最佳答案
想通了.. 显然,您无法避免使用辅助类,因为在 Web 服务中使用时必须包装异常,因为它们不可序列化。
关于web-services - 使用 CXF 生成的 Web 服务生成 Exception 异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298577/