【问题标题】:Axis2 WebService and multiple ExceptionFault elements in WSDLAxis2 Web 服务和 WSDL 中的多个异常故障元素
【发布时间】:2010-03-04 01:11:46
【问题描述】:

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

public class sample {

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


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

}

发布网络服务后,一切正常。但是 AXIS2 生成的 WSDL 似乎有缺陷。有 2 个 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,或者抛出Exception,但是没有成功……

马丁

【问题讨论】:

    标签: java exception wsdl axis2


    【解决方案1】:

    如果您从方法签名中删除“抛出异常”,它将不会生成带有异常元素的 WSDL。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      相关资源
      最近更新 更多