关于JavaWs 快速发布WebService

   1. 运行环境要求   JDK 6.0 version

   2. 系统环境变量

 当在CMD模式下输入 命令 wsgen

  出现 提示 这说明你的环境安装成功了.

 


 

 

先定义一个Interface  代码如下:    (包名用....代替)

java 代码
  1. package  ....;   
  2.   
  3. import javax.jws.WebMethod;   
  4. import javax.jws.WebService;   
  5.   
  6. @WebService  
  7. public interface HelloJaxWs {   
  8.        
  9. @WebMethod  
  10. public String echoMessage(String mes);   
  11.   
  12. }  

 

接口的实现  代码如下:

 

java 代码
  1. package ....   
  2.   
  3. import javax.jws.WebService;   
  4.   
  5.   
  6. @WebService(endpointInterface=".....HelloJaxWs")   
  7. public class HelloJaxWsImpl implements HelloJaxWs {   
  8.   
  9.     @Override  
  10.     public String echoMessage(String mes) {   
  11.            
  12.         return mes;   
  13.     }   
  14.   
  15. }  

 

编译上述两个java文件,得到 .... *.class 后 利用 JDK6.0自带的 wsgen 工具生成 这里的包 .....为test.ws

命令如下图所示:

 wsgen  -cp .      ...HelloJaxWsimpl

 

wsgen工具在 test.ws目录下生成 javaws\辅助类, 具体作用不详细介绍

 

 

java 代码
  1. import javax.xml.bind.annotation.XmlAccessType;   
  2. import javax.xml.bind.annotation.XmlAccessorType;   
  3. import javax.xml.bind.annotation.XmlElement;   
  4. import javax.xml.bind.annotation.XmlRootElement;   
  5. import javax.xml.bind.annotation.XmlType;   
  6.   
  7. @XmlRootElement(name = "echoMessage", namespace = "http://ws.test/")   
  8. @XmlAccessorType(XmlAccessType.FIELD)   
  9. @XmlType(name = "echoMessage", namespace = "http://ws.test/")   
  10. public class EchoMessage {   
  11.   
  12.     @XmlElement(name = "arg0", namespace = "")   
  13.     private String arg0;   
  14.   
  15.     /**  
  16.      *   
  17.      * @return  
  18.      *     returns String  
  19.      */  
  20.     public String getArg0() {   
  21.         return this.arg0;   
  22.     }   
  23.   
  24.     /**  
  25.      *   
  26.      * @param arg0  
  27.      *     the value for the arg0 property  
  28.      */  
  29.     public void setArg0(String arg0) {   
  30.         this.arg0 = arg0;   
  31.     }   
  32.   
  33. }   

 

 


 

java 代码
  1. import javax.xml.bind.annotation.XmlAccessType;   
  2. import javax.xml.bind.annotation.XmlAccessorType;   
  3. import javax.xml.bind.annotation.XmlElement;   
  4. import javax.xml.bind.annotation.XmlRootElement;   
  5. import javax.xml.bind.annotation.XmlType;   
  6.   
  7. @XmlRootElement(name = "echoMessageResponse", namespace = "http://ws.test/")   
  8. @XmlAccessorType(XmlAccessType.FIELD)   
  9. @XmlType(name = "echoMessageResponse", namespace = "http://ws.test/")   
  10. public class EchoMessageResponse {   
  11.   
  12.     @XmlElement(name = "return", namespace = "")   
  13.     private String _return;   
  14.   
  15.     /**  
  16.      *   
  17.      * @return  
  18.      *     returns String  
  19.      */  
  20.     public String get_return() {   
  21.         return this._return;   
  22.     }   
  23.   
  24.     /**  
  25.      *   
  26.      * @param _return  
  27.      *     the value for the _return property  
  28.      */  
  29.     public void set_return(String _return) {   
  30.         this._return = _return;   
  31.     }   
  32.   
  33. }   

 

然后我们须要编写一个发布WebService的客户类:

代码如下:

java 代码
  1. import javax.xml.ws.Endpoint;   
  2.   
  3. import test.ws.HelloJaxWsImpl;   
  4.   
  5. public class PubWs {   
  6.  public static void main(String[] args){   
  7.      Endpoint.publish("http://localhost:8080/ws/HelloService",new HelloJaxWsImpl());   
  8.  }   
  9. }  

 

到这里发布WebService 的工作已经结束,大家可以运行 PubWs 然后打开浏览器输入 

http://localhost:8080/ws/HelloService?wsdl

假如出现

wsdl 的定义就

 

 

 

表示发布成功

 

接下来的工作就是开发客户端

保持运行PubWs 这个程序

生成wsdl的存根(stud)用很多种方法,可以用Axis 中的wsdl2java;

这里我们就直接用jdk1.6中的wsimport

wsimport   http://localhost:8080/ws/HelloService?wsdl 运行这个命令就可以简单的生成客客端了

 

然后编写TestWs类测试WebService

代码如下:

java 代码
  1. public class TestWs {   
  2.   
  3.     /**  
  4.      * @param args  
  5.      */  
  6.     public static void main(String[] args) {   
  7.           
  8.         HelloJaxWsImplService service = new HelloJaxWsImplService();   
  9.         HelloJaxWs caller =service.getHelloJaxWsImplPort();   
  10.         String mes =(String)caller.echoMessage("victor");   
  11.         System.out.println("message: "+mes);   
  12.   
  13.     }   
  14.   
  15. }   

 

 

输出结果为  message: I am victorkevin

到此快带发布WebService的工作结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值