美文网首页
JAVA项目中发布WebService服务—简单实例

JAVA项目中发布WebService服务—简单实例

作者: 安易学车 | 来源:发表于2018-11-15 16:14 被阅读0次

    原文地址:https://blog.csdn.net/GoGleTech/article/details/78616121

    1,在Java项目中发布一个WebService服务:

    如何发布? 

    JDK1.6中JAX-WS规范定义了如何发布一个WebService服务: 

    (1)用jdk1.6.0_21以后的版本发布; 

    (2)与Web服务相关的类,都位于Javax.jws.*包中:

    @WebService——此注解用在类上指定将此类发布成一个WebService;

    EndPoint——此类为端点服务类,其中publish()方法用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上,用于发布。

    2,例子:

    (1)发布WebService服务 

    HelloWebService.java:

    package cn.tgb.ws;

    importjavax.jws.WebMethod; 

    importjavax.jws.WebService; 

    importjavax.xml.ws.Endpoint;  /**  * @WebService- 它是一个注解,用在类上指定将此类发布成一个ws.    Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。  * @authorxuemin  *  */  @WebService  public classHelloWebService { 

    publicString HelloWord(String name){  return"Hello: "+name; 

    }  /**  *添加exclude=true后,HelloWord2()方法不会被发布  * @paramname  * @return*/  @WebMethod(exclude=true) 

    publicString HelloWord2(String name){  return"Hello: "+name; 

    publicstatic void main(String[] args) {  /**

    *参数1:服务的发布地址

    *参数2:服务的实现者

    */ 

    Endpoint.publish("http://192.168.24.138:456/helloWord",new HelloWebService()); 

    }

    注: 

    * @WebService- 它是一个注解,用在类上指定将此类发布成一个ws. 

    * Endpoint –此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。

    运行以上程序进行发布。

    (2)查看wsdl

    地址:http://192.168.24.138:456/helloWord?wsdl 

    只要在客户端浏览器能看到此WSDL文档,说明服务发布成功 

    以上服务发布成功; 

    总结: 

    如何发布一个Web服务:

    a,在类上添加@WebService注解 (注:此注解是jdk1.6提供的,位于javax.jws.WebService包中)

    b,通过EndPoint(端点服务)发布一个WebService 

    (注:EndPoint是jdk提供的一个专门用于发布服务的类,该类的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。位于javax.xml.ws.Endpoint包中)

    c,注: 类上添加注解@WebService,类中所有非静态方法都会被发布; 静态方法和final方法不能被发布;方法上加@WebMentod(exclude=true)后,此方法不被发布

    (3)客户端访问发布的服务

    根据WSDL文档来在客户端编写代码,访问发布的服务;但是,WSDL文档看不懂怎么办?代码该如何编写? 

    ——你看不懂,JDK看得懂,wsimport是JDK自带的,可以根据WSDL文档生成客户端调用代码的工具。无论服务器端WebService使用什么语言编写的,都将在客户端生成Java代码。所以服务器用什么语言编写的并不重要。

    wsimport.exe命令参数熟知: 

    -d:生成class文件。默认参数。 

    -s:生成Java文件 -p:自定义包结构

    解析地址生成源码到E盘: wsimport -s . http://192.168.24.138:456/helloWord?wsdl

    执行以上命令后,即可在E盘下生成如下包及类: 

    注:还可以自定义包结构: 

    自定义包结构的命令: wsimport -s . -p com.test.ws.client  http://192.168.24.138:456/helloWord?wsdl

    将生成的包及.java文件复制到客户端:如下图 

    创建访问服务的类:MyClient.java: 

    MyClient.java:

    package cn.tgb.ws;  public classMyClient {    

    publicstatic void main(String[] args) {   

            HelloWebServiceService  hwss = new HelloWebServiceService();  

            HelloWebServiceh ws = hwss.getHelloWebServicePort();  

            String result=hws.helloWord("hanxuemin");  

            System.out.println(result); 

     }

    (4)运行结果: 

    相关文章

      网友评论

          本文标题:JAVA项目中发布WebService服务—简单实例

          本文链接:https://www.haomeiwen.com/subject/wfiyfqtx.html