JAX-WS - 基础示例

来源:互联网 发布:键盘windows键解锁 编辑:程序博客网 时间:2024/06/05 18:02
一、简介

    WebService是一种跨平台、跨语言的规范。解决远程、跨平台、跨语言应用之间的调用。

    JAX-WS(Java API for XML-Web Services)规范是一组XML web services的JAVA API。


二、服务端

    1、接口

package com.xilen.ws;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;/** * Web服务的接口:SEI(Service EndPoint Interface) * 接口需要添加注解@WebService */@WebServicepublic interface UserInfoService {/** * 接口方法,提供的具体服务 * 通过注解可以指定消息元素的名称为自定义,取代默认的如arg0等 */@WebResult(name="checkReturn")public String check(@WebParam(name="userName")String userName, @WebParam(name="userPass")String userPass);}
    2、实现

package com.xilen.ws;import javax.jws.WebService;/** * Web服务的实现:SIB(Service Implementation Bean) * 实现需要注解@WebService,并指定实现的接口 */@WebService(endpointInterface="com.xilen.ws.UserInfoService", serviceName="UserInfoServiceImplService")public class UserInfoServiceImpl implements UserInfoService{@Overridepublic String check(String userName, String userPass) {return "Check [ userName:" + userName + "; userPass:" + userPass + " ]";}}
    3、发布

package com.xilen.ws;import javax.xml.ws.Endpoint;public class WsStart {public static void main(String[] args) {String address = "http://127.0.0.1:8888/userinfo";/** *通过Endpoint的静态方法publish()实现发布 *传入服务的地址和服务的实现对象  */Endpoint.publish(address, new UserInfoServiceImpl());}}
    4、查看

        当浏览器访问发布地址得到如下图时成功发布

            

三、客户端

    1、准备

        通过wsimport生成WS调用的相关文件,如下:

D:\>wsimport -d D:\JavaWorks\WebServices\JAX-WS_Init_Client\src -keep -verbose http://127.0.0.1:8888/userinfo?wsdl
    2、调用

package com.xilen;import com.xilen.ws.UserInfoService;import com.xilen.ws.UserInfoServiceImplService;public class WsClient {public static void main(String[] args) {/** * 在生成的Java类中,继承javax.xml.ws.Service的类可视为一个工厂 * 这个类是的名称即服务端WS实现中注解的serviceName,同时也是wsdl文档definitions中的name */UserInfoServiceImplService uisis = new UserInfoServiceImplService();//通过这个工厂的实例获取服务接口的代理UserInfoService uis = uisis.getUserInfoServiceImplPort();//通过这个接口实现远程调用System.out.println(uis.check("admin", "12345"));}}
    3、结果

Check [ userName:admin; userPass:12345 ]


四、补充

    wsimport参数:

        -d dirName : 指定生成的文件的目录

        -p pkgName : 指定自定义的包名,不指定则默认服务端的包名

        -keep      : 指定是否生成.java的源文件

        -verbose   : 指定是否显示生成过程的信息

        wsdlUrl    : 指定wsdl文档的url
 
五、下载

    http://download.csdn.net/detail/u013379717/7254335

 

 

0 0
原创粉丝点击