`
zhang_xzhi_xjtu
  • 浏览: 538518 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jaxws的web service的自定义fault.

    博客分类:
  • SOA
阅读更多

在jaxws中自定义fault比较绕弯,以下是自定义一个fault的过程。

1 建立web service以及 web method.

@WebService
public interface PersonService {

@WebMethod
public Person getPersonById(String id) throws MyException;

}

2 MyException.里面一定要有一个faultInfo的object.

@WebFault(name = "MyException")
public class MyException extends Exception implements Serializable {

private static final long serialVersionUID = 1L;

private MyFault faultInfo;

public MyException(String s, MyFault faultInfo) {
super(s);
this.faultInfo = faultInfo;
}

public MyFault getFaultInfo() {
return faultInfo;
}

public void setFaultInfo(MyFault faultInfo) {
this.faultInfo = faultInfo;
}
}

3 定义MyFault.

public class MyFault {

private String errMsg;
private int errCode;

public String getErrMsg() {
return errMsg;
}

public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}

public int getErrCode() {
return errCode;
}

public void setErrCode(int errCode) {
this.errCode = errCode;
}

}

4 发布web service. 查看wsdl,可以看到以下内容。
- <message name="MyException"> 
            <part element="tns:MyException" name="fault" /> 
 

 </message>

 

- <portType name="PersonService">
- <operation name="getPersonById">
  <input message="tns:getPersonById" />
  <output message="tns:getPersonByIdResponse" />
  <fault message="tns:MyException" name="MyException" />
  </operation>
  </portType>

 

<xs:element nillable="true" name="MyException" type="tns:myFault" />

- <xs:complexType name="myFault">
- <xs:sequence>
  <xs:element name="errCode" type="xs:int" />
  <xs:element name="errMsg" type="xs:string" minOccurs="0" />
  </xs:sequence>
</xs:complexType>
 
5 在client验证。
try {
      p = ps.getPersonById("exception");
     } catch (MyException me) {
      MyFault myFault = me.getFaultInfo();
      log.log(Level.INFO, "Error ErrCode = "
        + myFault.getErrCode());
      log.log(Level.INFO, "Fault ErrMsg = "
        + myFault.getErrMsg());
}

 

绕了好大一圈,擦汗。

貌似jaxws2.1可以直接map java exception到fault. 有时间可以试一试。

 

 

 

分享到:
评论

相关推荐

    jaxws-ri-2.2.8.zip

    Java API for XML Web Services (JAX-WS) 是Java平台上用于构建Web服务和客户端的API。JAX-RI(JAX-WS Reference Implementation)是这个API的官方参考实现,它提供了一个完整的、符合规范的解决方案,使开发者能够...

    jaxws-api-2.3.1.jar

    安卓用到的额外的jar包,记录在此以备不时之需

    jaxws-rt-2.2.8.jar java webservice依赖包

    jaxws-rt-2.2.8.jar java webservice依赖包 在Tomcat中发布webservice时所用到

    jaxws-api-2.0.jar

    用jar包用的 工具包。下载完成放在 endorsed下面即可

    jaxws-api-2.1.jar

    用于Java Webservice开发 jdK

    jaxws-api-2.1.zip

    这个"jaxws-api-2.1.zip"压缩包包含的是JAX-WS 2.1版本的API库,主要用于Java应用程序开发,特别是那些需要与Web服务交互的应用。 **JAX-WS概述** JAX-WS作为Sun Microsystems(现已被Oracle收购)推出的一种技术...

    arquillian-tomee-jaxws-tests-1.6.0.2.jar

    标签:arquillian-tomee-jaxws-tests-1.6.0.2.jar,arquillian,tomee,jaxws,tests,1.6.0.2,jar包下载,依赖包

    jaxws-ri-2.3.1.zip

    标签"webser jaxws"表明这是与Web服务和JAX-WS相关的技术。Web服务是一种通过网络进行通信的软件,而JAX-WS则是开发这种服务的Java标准。 压缩包内的"jaxws-ri"可能包含以下组成部分: 1. **bin**:存放可执行文件...

    arquillian-tomee-jaxws-tests-1.6.0.2-sources.jar

    标签:arquillian-tomee-jaxws-tests-1.6.0.2-sources.jar,arquillian,tomee,jaxws,tests,1.6.0.2,sources,jar包下载,依赖包

    arquillian-tomee-jaxws-tests-1.6.0.1-sources.jar

    标签:arquillian-tomee-jaxws-tests-1.6.0.1-sources.jar,arquillian,tomee,jaxws,tests,1.6.0.1,sources,jar包下载,依赖包

    jaxws-api-doc.zip

    例如,`javax.xml.ws.WebServiceRef`注解用于在Java应用中注入Web服务代理,而`javax.xml.ws.Service`类则用于创建服务端点或客户端代理。此外,还有`@WebService`注解,用于标识服务接口,以及`@SOAPBinding`,用于...

    arquillian-tomee-jaxws-tests-1.6.0.jar

    标签:arquillian-tomee-jaxws-tests-1.6.0.jar,arquillian,tomee,jaxws,tests,1.6.0,jar包下载,依赖包

    arquillian-tomee-jaxws-tests-1.7.0.jar

    标签:arquillian-tomee-jaxws-tests-1.7.0.jar,arquillian,tomee,jaxws,tests,1.7.0,jar包下载,依赖包

    arquillian-tomee-jaxws-tests-1.7.1.jar

    标签:arquillian-tomee-jaxws-tests-1.7.1.jar,arquillian,tomee,jaxws,tests,1.7.1,jar包下载,依赖包

    arquillian-tomee-jaxws-tests-1.5.0.jar

    标签:arquillian-tomee-jaxws-tests-1.5.0.jar,arquillian,tomee,jaxws,tests,1.5.0,jar包下载,依赖包

    arquillian-tomee-jaxws-tests-1.5.1.jar

    标签:arquillian-tomee-jaxws-tests-1.5.1.jar,arquillian,tomee,jaxws,tests,1.5.1,jar包下载,依赖包

    arquillian-tomee-jaxws-tests-1.5.2.jar

    标签:arquillian-tomee-jaxws-tests-1.5.2.jar,arquillian,tomee,jaxws,tests,1.5.2,jar包下载,依赖包

    jaxws-rt发布依赖的jar包.zip

    Java API for XML Web Services (JAX-WS) 是Java平台上用于构建Web服务和客户端的API。JAX-RT是JAX-WS的一部分,它包含了运行时组件,使得开发者能够实现和消费SOAP(Simple Object Access Protocol)服务。在Java ...

    jar_files.zip内含jaxws-api-2.3.1.jar等jar包

    1. **jaxws-api-2.3.1.jar**:这是JAX-WS API的核心库,提供了在Java应用程序中创建和消费SOAP(Simple Object Access Protocol)Web服务的标准接口。版本2.3.1是这个API的一个更新版本,它遵循Java EE 8规范,包含...

Global site tag (gtag.js) - Google Analytics