基于javaJDK 的WebService开发服务端和客户端

WebService概念

webService就是一个应用程序,他提供一种web方式访问的api,是解决两个系统(或者应用程序)之间的远程调用。 是跨语言,跨拼台的   webService 的基本组成部分就是 服务端 和客户端。

WebService 的例子应用

服务端:(作为服务端,怎么将自己的应用程序发布成一个webservice,让别人调用)

 

我们需要了解的俩个概念是 xml ,wdl,soap

xml (webservice的客户端与服务端进行交互的时候传递的数据格式)

webservice description language(web 服务描述语言.. api)xml,简称wsdl

soap(简单对象访问协议) webservice的客户端与服务端进行交互的时候走的协议

(soap 分两个版本(soap 1.1 与soap1.2)),现在的本是soap1.1,因为java jdk 只支持soap1.1版本的协议发布..

***** soap 协议=在http 的基础之上传送xml 格式的数据..

 

发布服务:

第一种是通过 Java jdk 自带的类可以将 java引用程序发布成webservice ,那个类及Endpoint.publish("http://192.168.2.120:9999/helloService",new HelloServiceimpl()); //第一个参数是对外提供访问的地址,第二个是提供服务的类的对象。

这类是Javax扩展包提供的,但是要求jdk 版本必须在1.6.0_21之上。

 

 

//发布服务的类     

packagecom.shl.server;

 

importjavax.xml.ws.Endpoint;

 

publicclass PbulisServer {

 

    /**

     *

     * @param args

     */

    publicstaticvoid main(String[] args) {

       //java jdk 提供一个自带的类可以将 java引用程序发布成webservice ,那个类及

       Endpoint.publish("http://192.168.2.120:9999/helloService",new HelloServiceimpl()); //第一个参数是对外提供访问的地址,第二个是提供服务的类的对象。

      

    }

 

}

 

//提供服务的类

packagecom.shl.server;

 

importjavax.jws.WebService;

 

@WebService

publicclass HelloServiceimpl {

    publicvoid doublekill(){

       System.out.println("发布服务测试");

      

    }

 

}

 

注意:1,endpoint是java jdk 提供的类,用来发布webservice,所以你的jdk 版本必须在1.6.0_21之上..

     2,被发布的类当中必须包含一个有效(方法必须为publish的非静态的,非final的方法)的方法

     3,被发布的类上面必须有 @WebService 注解javax.jws.WebService 提供的。

 

                  

客户端:

(作为客户端,怎么调用别人发布的webservice)

调用服务:我们可以通过java jdk 自带的一个命令 wsimport 根据服务端说明书(wsdl)生成本地的java 代码

我们直接操作这些java 代码,就可以调用webservice

 

Wsimport 的使用格式:

wsimport -d . +服务说明书(wsdl)的地址 生成本地的class 文件

wsimport -s . +服务说明书(wsdl)的地址 生成本地的class 文件与java文件

wsimport -s . -p(包名)+服务说明书(wsdl)的地址 生成本地的class 文件与java文件

 

注意:

1. 通过 f: 切换到f盘 在运行上面的命令 f盘的根目录自动生成客户端代码 以及class文件  class文件是用来部署的 , 但是客户端有修改时 还要通过javac 要编译类  命令 对修改的类重新编译。

 

2. 将生成的客户端文件夹 复制到客户端的项目中的src 目录下  项目目录结构

 

客户端调用接口的类  本例 接口的类是实现类是

 

packagecom.shl.client.juyujdkwebservice;

 

importcom.shl.server.HelloServiceimpl;

importcom.shl.server.HelloServiceimplService;

 

/**

 * 既然我们可以操作生成java代码就可通过生成的java代码来调用webservice服务;

 * @author shenhl

 *

 */

publicclass InvokeHelloService {

 

    publicstaticvoid main(String[] args) {

       //第一步想要调用接口首先要找到接口,由于接口无法直接调用所以获取接口的实现类

       HelloServiceimplService helloServiceimplService = new HelloServiceimplService();

       HelloServiceimpl helloServiceimpl = helloServiceimplService.getHelloServiceimplPort();

       String resouce = helloServiceimpl.doublekill("111");

       System.out.println(resouce);

    }

 

}

End 第一种方法服务端看和客户端配置完成  亲测-------

Java WebService 简单实例 http://blog.csdn.net/kingmax54212008/article/details/49764401 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要的重复操作。 一、准备工作(以下为本实例使用工具) 1、MyEclipse10.7.1 2、JDK 1.6.0_22 二、创建服务端 1、创建【Web Service Project】,命名为【TheService】。 2、创建【Class】类,命名为【ServiceHello】,位于【com.hyan.service】包下。 3、编写供客户端调用的方法,即编译方法代码。 4、进行编译 说明:编译失败的话,请将该项目引用的jdk设置为1.6.0_17版本或更高版本 5、测试结果 测试地址:http://localhost:9001/Service/ServiceHello?wsdl 三、生成客户端 1、创建【Web Service Project】,命名为【TheClient】。 2、命令提示窗口执行生成命令。 格式:wsimport -s "src目录" -p “生成类所在包名” -keep “wsdl发布地址” 示例: wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl 说明: 1)"src目录"地址不可含空格 2)“wsdl发布地址”不要漏了“?wsdl” 3、刷新项目,检查生成类 四、最终测试 1、创建【Class】类,命名为【ServiceTest】,位于【com.hyan.test】包下。 2、编写测试方法,调用服务端方法,并打印返回的结果。 五、注意事项 1、JDK版本过低问题 报类似如下的异常:runtime modeler error: Wrapper class com.hyan.service.jaxws.GetValue is not found. Have you run APT to generate them? 原因:JDK版本低于1.6.0_17 解决方法:调整该服务端项目所引用的JDK版本为安装的高版本JDK
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值