使用JDK开发WebService-服务器端建立

来源:互联网 发布:网络漫画培训 编辑:程序博客网 时间:2024/05/01 07:13

一、引言

开发一个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 {@WebMethodpublic String sayHello(String name);}

定义完接口,接下来创建一个实现类来实现我们写的SEI

生成的类同样需要加上@WebService注解,因为只是为了实现功能,就打印一个输出就可以了。

package com.gpj.service;import javax.jws.WebService;/* * SEI的实现 */@WebServicepublic class HelloServiceImpl implements HelloService {@Overridepublic 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浏览器请求的数据,我们的最终目的是创建客户端的编码的方式来访问,大体先了解发送和接收数据的格式,下篇我们来创建客户端。






1 0