java - Axis2 Web 服务和 WSDL 中的多个异常错误元素

标签 java exception wsdl apache-axis

我不是 AXIS2 专家,因此我使用 Eclipse 生成自下而上的 Web 服务。我将 2 个方法发布为 Web 服务。这些方法被定义为抛出 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");
 }

}

发布Web服务后,一切正常。但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,但没有成功...

马丁

最佳答案

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

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

关于java - Axis2 Web 服务和 WSDL 中的多个异常错误元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370363/

相关文章:

java - Tapestry 中的所有嵌入组件

java - Oracle xdb-xmlparser 源代码

java - 不同转义字符的扫描仪困难

java - Jace::虚拟机关机错误

java - 如何使用 Java 反射调用抛出异常的方法?

xsd - 多个 wsdl 和 xsd 文件...合并为一个 wsdl

java - 如何制作在所有窗口分辨率下显示相似行为(布局)的 SWT/JFace 对话框

java - org.hibernate.LazyInitializationException : could not initialize proxy - no Session

web-services - 从 WSDL 生成 HTML 文档

java - 如何解决 org.jboss.ws.WSException : Policy not supported in JBoss AS 4. 2.?