WSDL中的Axis2 Web服务和多个异常故障元素

时间:2010-03-03 10:25:12

标签: java exception wsdl axis2

我不是AXIS2专家,因此我使用Eclipse生成自下而上的Web服务。我正在发布2个方法作为webservices。这些方法被定义为抛出java.lang.Exception,以便在调用以异常结束的webservice时生成SOAPFault。

public class sample {

 public String someMethod() throws Exception {
  throw new CustomException("Error: blabla");
 }


 public String someOtherMethod() throws Exception {
  throw new CustomException("Error: blabla");
 }

}

发布webservice后,一切正常。但AXIS2生成的WSDL似乎有缺陷。有两个ExceptionFault元素(每个方法一个?),这对一些Web服务客户来说是个问题。

<xs:element name="ExceptionFault">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="Exception" nillable="true" type="xs:anyType"/>
      </xs:sequence>
   </xs:complexType>
</xs:element>

有什么问题?我的实施有问题吗?我也尝试声明方法直接抛出CustomException,或抛出异常,但没有成功...

马丁

1 个答案:

答案 0 :(得分:1)

如果从方法签名中删除“throws Exception”,它将不会生成带有Exception元素的WSDL。

如果您的CustomException扩展RuntimeException(即它是一个未经检查的异常),那么你会没事的。 RunisException将由Axis正确转换为SOAPFault。