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

    xiaoxiao2021-11-29  22

    目录(?)[+]

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

    如何发布?

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

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

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

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

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

     

    2,例子:

    (1)发布WebService服务

    HelloWebService.Java:

    [java]  view plain  copy   <span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws;   importjavax.jws.WebMethod;   importjavax.jws.WebService;   importjavax.xml.ws.Endpoint;   /**   *  @WebService - 它是一个注解,用在类上指定将此类发布成一个ws.      Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。      * @author xuemin   *   */   @WebService   public classHelloWebService {       publicString HelloWord(String name){   return"Hello: "+name;   }       /**   *添加exclude=true后,HelloWord2()方法不会被发布   * @param name   * @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());       }       }</span>  

    注:

    @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

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

    c,注:

    类上添加注解@WebService,类中所有非静态方法都会被发布;

    静态方法和final方法不能被发布;

    方法上加@WebMentod(exclude=true)后,此方法不被发布;

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

    根据WSDL文档来在客户端编写代码,访问发布的服务;

    但是,WSDL文档看不懂怎么办?代码该如何编写?

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

    wsimport.exe命令参数熟知:

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

        -s:生成Java文件

       -p:自定义包结构

     

    解析地址生成源码到E盘:

     

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

     

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

    自定义包结构的命令:

     

     

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

     

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

     

    MyClient.java:

    [java]  view plain  copy   <span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws;       public classMyClient {         publicstatic void main(String[] args) {        HelloWebServiceServicehwss = new HelloWebServiceService();            HelloWebServicehws = hwss.getHelloWebServicePort();            Stringresult=hws.helloWord("hanxuemin");        System.out.println(result);     }       }</span>  

     

    (4)运行结果:

    总结:

    通过此篇博客,应该掌握到:如何发布一个Java Web服务;如何在客户端访问发布的Web服务。

    转载请注明原文地址: https://ju.6miu.com/read-678723.html

    最新回复(0)