我们有一个Web实现,它抛出一个自定义SecurityException。
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>现在,如果我在SecurityException文件上运行wsdl2java,就会得到一个.wsdl文件:
@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 bug似乎不适用)
发布于 2011-12-03 06:58:14
弄明白了..。从表面上看,您无法避免助手类,因为异常在web服务中使用时必须包装,因为它们是不可序列化的。
发布于 2013-10-02 15:14:45
我正在使用内置于maven中的JAXB (jaxws-maven-plugin / wsimport目标),但我也遇到了同样的问题。(它生成了BusinessException和BusinessException_Exception)。
我的修正是将异常放在另一个名称空间中。因此,现在我有两个BusinessException文件,在两个不同的文件夹中生成,其中一个是以另一个作为参数的异常。编译ok,没有Exception_Exception丑。
https://stackoverflow.com/questions/8298577
复制相似问题