[置顶] Java WebService接口生成和调用 图像和文字详解

webservice简介:
Web Service技术,
能使得运维在区别机器上的不等选拔无须借助附加的、专门的第三方软件或硬件,
就可互相沟通数据或集成。依照Web Service规范执行的使用之间,
无论它们所接纳的言语、 平台或内部协议是何等, 都能够相互交流数据。Web
Service是自描述、 自包罗的可用互连网模块, 能够进行实际的业务职能。Web
Service也很简单安顿,
因为它们基于一些好端端的家底标准以及已有的某个技艺,诸如标准通用标记语言下的子集XML、HTTP。Web
Service收缩了使用接口的消费。Web
Service为全体公司依旧四个组织之间的业务流程的并轨提供了多个通用机制

一、 WebService生成

1.在eclipse或myclipse新建三个Web项目,并新建1个class类,用于发布;
图片 1

二.编制供客户端调用的不二等秘书籍,即编写翻译方法代码;
示例:

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/**
* Title: ServiceHello
* Description: 基于jdk1.6以上的javax.jws 发布webservice接口
                @WebService - 它是一个注解,用在类上指定将此类发布成一个ws。
                Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解
                对象绑定到一个地址的端口上。 
* Version:1.0.0  
* @author panchengming
 */
@WebService  
public class JwsServiceHello {

    /** 供客户端调用方法  该方法是非静态的,会被发布
     * @param name  传入参数
     * @return String 返回结果
     * */
    public String getValue(String name){
        return "欢迎你! "+name;
    }

    /**
     * 方法上加@WebMentod(exclude=true)后,此方法不被发布;
     * @param name
     * @return
     */
    @WebMethod(exclude=true)  
    public String getHello(String name){
        return "你好! "+name;
    }

    /** 静态方法不会被发布
     * @param name
     * @return
     */
    public static String getString(String name){
        return "再见!"+name;
    }


     //通过EndPoint(端点服务)发布一个WebService
    public static void main(String[] args) {
     /*参数:1,本地的服务地址;
           2,提供服务的类;
      */
     Endpoint.publish("http://192.168.1.105:8080/Service/ServiceHello", new JwsServiceHello());
     System.out.println("发布成功!");
     //发布成功后 在浏览器输入 http://192.168.1.105:8080/Service/ServiceHello?wsdl
    }
}

三.开展编译运维(注:失利检查jdk版本)
图片 2
肆.将所设地址加上?wsdl到浏览器上访问,如出现XML格式代码,则公布成功,反之,则否;(url:
http://192.168.1.105:8080/Service/ServiceHello?wsdl)
图片 3

2、WebService调用艺术

变迁代码格局一

1.新建3个class类,用于调用webservice。右键src,找到Web 瑟维斯Client,并输入wsdl地址,选用下载代码的门路;(url:
http://192.168.1.105:8080/Service/ServiceHello?wsdl)
图片 4
图片 5
图片 6
二.将地点上的文本下载下来(注意和揭露JDK1致);
三.写调用方法调用下载下来的WebService中的java类中的方法;
示例:

import com.pcm.ws.jws.JwsServiceHello;
import com.pcm.ws.jws.JwsServiceHelloService;

/**
 * 
* Title: JwsClientHello
* Description: webService 客户端调用
* Version:1.0.0  
* @author panchengming
 */
public class JwsClientHello {

    public static void main(String[] args) {
         //调用webservice
        JwsServiceHello hello=new JwsServiceHelloService().getJwsServiceHelloPort();
        String name=hello.getValue("panchengming");
        System.out.println(name);
    }
}

图片 7

扭转代码格局二
1.创建Web Service Project,命名为TheClient。
二.在dos命令下输入 wsimport -s “src目录” -p “生成类所在包名” -keep
“wsdl公布地方”
示例:wsimport -s G:\workspace\webService\webService_Project\src -p
com.pcm.ws.jws -keep
http://192.168.1.105:8080/Service/ServiceHello?wsdl
三.打响则赶回 parsing WSDL…
generating code…
compiling code…
肆.刷新项目,生成类;
伍,写调用方法(同上);

三、总结:

怎样宣布贰个Web服务:
a,在类上添加@Web瑟维斯评释
(注:此注脚是jdk一.六提供的,位于javax.jws.WebService包中)
b,通过EndPoint(端点服务)发表一个WebService
(注:EndPoint是jdk提供的三个专门用于公布服务的类,该类的publish方法接收七个参数,三个是当地的服务地点,二是提供劳务的类。位于
javax.xml.ws.Endpoint包中)
c,注:
类上添加注明@WebService,类中享有非静态方法都会被公布;
静态方法和final方法无法被揭发;
方式上加@WebMentod(exclude=true)后,此办法不被揭橥;

该demo我放在github上了,https://github.com/xuwujing/webservice_project
有趣味的能够看看。

相关文章