zoukankan      html  css  js  c++  java
  • JAVA项目中公布WebService服务——简单实例

    1。在Java项目中公布一个WebService服务:

    怎样公布?

    ——JDK1.6JAX-WS规范定义了怎样公布一个WebService服务。

    (1)jdk1.6.0_21以后的版本号公布。

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

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

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

     

    2。样例:

    (1)公布WebService服务


    HelloWebService.java:

    <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注解对象绑定到一个地址的port上。

     

    执行以上程序进行公布。

     

    (2)查看wsdl

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

    仅仅要在client浏览器能看到此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)client訪问公布的服务

    依据WSDL文档来在client编写代码,訪问公布的服务。

    可是,WSDL文档看不懂怎么办?代码该怎样编写?

    ——你看不懂,JDK看得懂。wsimportJDK自带的,能够依据WSDL文档生成client调用代码的工具。不管server端WebService使用什么语言编写的,豆浆在client生成Java代码。所以server用什么语言编写的并不重要。

    wsimport.exe命令參数熟知:

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

        -s:生成Java文件

       -p:自己定义包结构

     

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


     

    运行以上命令后。就可以在E盘下生成例如以下包及类


     

    注:还能够自己定义包结构:

    自己定义包结构的命令:


     


     

    将生成的包及.java文件拷贝到client:例如以下图


     

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


     

    MyClient.java:

    <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服务。怎样在client訪问公布的Web服务。

  • 相关阅读:
    对比<input type="text" id="">和<asp:TextBox runat="server" ID="">
    EasyUI 启用行内编辑
    水平居中和transform: translateY(-50%) 实现元素垂直居中效果
    表头的一些解释
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">详解
    访问远程桌面 步骤
    jQuery EasyUI API 中文文档
    用JavaScript方式创建easyUI datagrid Column Group(列组)
    jquery中innerheight outerHeight()与height()的区别
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7082610.html
Copyright © 2011-2022 走看看