我有一个大型WSDL文件,其中包含以下部分:
<element name="fault" type="tns2:MyServiceException"/>
...
<complexType name="MyServiceException">
<sequence>
<element name="subtype" nillable="true" type="xsd:string"/>
<element name="text" nillable="true" type="xsd:string"/>
<element name="type" nillable="true" type="tns2:MyServiceExceptionType"/>
</sequence>
</complexType>
...
<wsdl:operation name="login">
<wsdl:input message="impl:loginRequest" name="loginRequest"/>
<wsdl:output message="impl:loginResponse" name="loginResponse"/>
<wsdl:fault message="impl:MyRedirectionException" name="MyRedirectionException"/>
<wsdl:fault message="impl:MyServiceException" name="MyServiceException"/>
</wsdl:operation>
(我可能已经省略了相关部分,抱歉。如果您需要更多信息,请告诉我。)
当通过wsdl2java
运行时,它会生成以下异常类:
/**
* MyServiceException.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Feb 10, 2009 (11:08:57 GMT) WSDL2Java emitter.
*/
package my.webservice.common;
public class MyServiceException extends org.apache.axis.AxisFault implements java.io.Serializable {
private java.lang.String subtype;
private java.lang.String text;
private my.webservice.common.MyServiceExceptionType type;
public MyServiceException() {
}
public MyServiceException(
java.lang.String subtype,
java.lang.String text,
my.webservice.common.MyServiceExceptionType type) {
this.subtype = subtype;
this.text = text;
this.type = type;
}
...
此类不接受“cause”作为构造函数参数(并且AxisFault的no-args构造函数调用“initCause(null)”,因此我不能使用“initCause”)。
我希望能够在我的服务器代码中抛出此类型的异常时传递一个原因。
如何配置wsdl2java
以生成接受原因的构造函数?