开发Web Service的几种方式

本文做者在学习使用Java开发Web Service(不包括Restful)时,因为不知道Java有这么多框架支持开发Web Service一度陷入迷惘,不知道这些框架各有java

什么不一样,各有什么优缺点。通过几天的查资料、实验、失败、再查资料、再实验的过程,终于有了一个大概的了解,也把本身的学习成果跟你们分享一下:web

用Java开发Web Service通常有三种方式,本文在Idea下分别使用三种方式并结合Spring容器实现了三个Demo,下面为你们一一介绍。spring

一、Axis、XFire和CXF方式浏览器

这几种框架都采用“代码优先”的方式开发Web Service,即先开发出普通的Java代码,而后使用框架自动将Java对象方法发布成Web Service。框架

Idea自带Axis框架,在建立工程时选择便可(Web Application->WebServices,Version中选择Apache Axis)。ide

该方式的开发过程很简单,实现好web service 类后,点击Idea窗口中的Tool->Web Service->Generate wsdl from java code,配置好服务地址便可。学习

该示例较简单未上传。测试

二、Spring-WS方式url

该框架是“文档优先”方式,即先制定出报文协议,而后再开发具体的服务应用。idea

Idea自带该框架,在建立工程时选择(Spring->Spring Web Services)便可自动下载相关包。

详细开发步骤以下:

2.1 在web.xml中添加servlet

2.二、 在WEB-INF下创建配置文件spring-ws-servlet.xml

2.三、 在resources目录下创建hello.wsdl

2.4 、建立web service 类和终结点

2.五、 在spring-ws-servlet.xml文件中配置终结点bean

示例Demo下载:http://files.cnblogs.com/wenjingu/springws.zip

三、JAX-WS方式

JAX-WS是JDK自带的框架,它是Java的Web服务标准。该框架同时支持“代码优先”方式和“文档优先”方式,但彷佛对“文档优先”方式的支持更好一些。

不少JAX-WS开发者都推荐使用“文档优先”方式。Idea自带该框架,在建立工程时选择(Web Application->WebServices,Version默认)便可自动下载相关包。

开发步骤以下:

3.一、“代码优先”方式与1相似

3.二、“文档优先”方式与2相似

示例Demo下载:http://files.cnblogs.com/wenjingu/jaxws.zip 只传了服务端,客户端按4.2节的步骤建立便可。

四、测试

4.一、在浏览器输入:http://localhost:8080/services/HelloWorld?wsdl能够显示该文件内容,输入:http://localhost:8080/services/HelloWorld可显示相似以下内容:

1

 

4.二、在Idea中建立一个WebService Client工程,idea会自动建立一些代码,修改后以下所示:

1
2
3
4
5
6
7
public  class  HelloWorldClient {
   public  static  void  main(String[] argv) {
       mypackage.HelloWorld service =  new  HelloWorldService().getHelloWorldPort();
       //invoke business method
       service.sayHelloWorldFrom( "192.168.20.106" );
   }
}

执行后会在服务端打印:Hello, world, from 192.168.20.106。

4.三、不少开发者建议用SoapUI测试,本文还没有使用,有时间再研究下。

 

补充:

CXF如今已实现了JAX-WS2.0规范,开始提供对JAX-WS API的支持。

相关文章
相关标签/搜索