wsdl2java - 异常类不接受构造函数中的“原因”

时间:2014-01-21 18:52:04

标签: java wsdl2java

我有一个大型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以生成接受原因的构造函数?

0 个答案:

没有答案