开发一个WebService主要涉及到两个方面,客户端的开发和服务器端的开发。下面介绍WebService服务器端和客户端使用JDK的实现方式。
二、开发手段
使用JDK(1.6以上版本)开发
MyEclipes或eclipse开发工具(我使用的是MyEclipse10)
三、开发服务器端
创建一个Web Service PRoject后,首先我们需要创建一个WebService的终端接口-SEI(WebService EndPoint Interface)
这里,我们用到两个注解
·@WebService
·@@WebMethod
package com.gpj.service;import javax.jws.WebMethod;import javax.jws.WebService;/* * SEI */@WebServicepublic interface HelloService { @WebMethod public String sayHello(String name);}定义完接口,接下来创建一个实现类来实现我们写的SEI生成的类同样需要加上@WebService注解,因为只是为了实现功能,就打印一个输出就可以了。
package com.gpj.service;import javax.jws.WebService;/* * SEI的实现 */@WebServicepublic class HelloServiceImpl implements HelloService { @Override public String sayHello(String name) { System.out.println("service sayHello()" +name); return "Hello "+name; }}开发一个服务器端,我们的目的是为了使客户端能够访问。所以,我们需要把我们写好的服务器端暴露出来。接下来,需要做的就是把服务器发布出去。四、发布服务器端
创建一个包,并创建一个测试类
这时,我们需要用到一个类“Endpoint”,相当于一个工具类,用于发布我们的服务器端。里面有个静态方法publish。发布需要用的就是这个方法。
public static Endpoint publish(String address, Object implementor) { return Provider.provider().createAndPublishEndpoint(address, implementor); }这个方法需要传入两个参数
·address-本地的服务地址
·implementor-提供服务的类
创建一个main()方法,代码如下
package com.gpj.service.endpoint;import javax.xml.ws.Endpoint;import com.gpj.service.HelloServiceImpl;public class ServiceTest { public static void main(String[] args) { String address="http://localhost:8080/service/HelloService"; Endpoint.publish(address, new HelloServiceImpl()); System.out.println("JDKservice发布成功"); }}运行mian()方法,控制台有打印“JDKservice发布成功”,并显示终止按键,说明服务器已经运行起来了。
五、使用eclipse自带的Web Service浏览器访问
每一个WebService都有一个wsdl文档,我们通过浏览器就可以访问。打开浏览器输入这个地址http://localhost:8080/service/HelloService?wsdl这个地址是我们实现类里面Endpoint.publish的adress后面再加上“?wsdl”,例如我发布的adress是http://localhost:8080/service/HelloService 访问的地址就是http://localhost:8080/service/HelloService?wsdl如果能访问到这个页面,说明确实是发布成功了,但是到底能不能实现我们服务器写的功能呢?接下来使用eclipse自带Web Service浏览器①,我们可以借助这个功能去访问http://localhost:8080/service/HelloService?wsdl
eclipse的Web Service浏览器 相当于写了一些客户端代码,它会解析wsdl文档。访问成功后,点开我们的项目,会看到写的sayHello方法。点击这个方法Body里面有个add按钮,然后随意输点字符串,继续点击go,接下来看控制台,如果控制台打印了sayHello方法的输出信息。说明服务器端开发完成
把下面的Status拉开,会看到返回信息,点击Source
这里会看到我们提交的数据和接收到的数据,目前我们是通过eclipes自带的Web Service浏览器请求的数据,我们的最终目的是创建客户端的编码的方式来访问,大体先了解发送和接收数据的格式,下篇我们来创建客户端。
新闻热点
疑难解答