Apache Axis是一个功能齐全的SOAP引擎,提供创建服务端,客户端和网关SOAP操作的基本框架,
1.常用的Web服务框架
1.1Apache服务框架Axis
缺点:开发过程繁琐,配置复杂,缺少简单易懂用户指南
1.2 CodeHaus服务框架XFire
优点:简化Web服务开发,开发速度快,可以和Spring结合
缺点:缺少支持附件的功能,缺少简单易懂的用户指南
1.3 Apache服务框架CXF
2.Eclipse+Axis2整合开发Web Service----HelloWorld实例
1.下载并安装Axis2
1.1http://axis.apache.org/axis2/java/core/index.html
1.2
1.3
该Axis2类似于一个Tomcat容器,可以通过bin\axis2server.bat来启动该服务
修改confi\axis2.xml中的端口8080为8081。
启动后在地址栏http://localhost:8081/来看Axis2的服务
1.4 配置Eclipse与Axis2的集成
1.5开发Web service服务器端--AxisHelloWorldServer项目
1.首先创建AxisHelloWorldServer,并新建包名com.demo
2.新建服务类HelloWorld.java
复制代码
1 package com.demo;
2
3 public class HelloWorld {
4
5 public String sayHello(String world){
6 System.out.println("接受客户端请求:"+world);
7 return "Hello"+world+"!";
8 }
9 }
复制代码
3.新建并发布Web Service
为了使以上普通POJO类能够作为WEB服务被发布,
接下来在AxisHelloWorldServer项目名称上单击鼠标右键
在弹出快捷菜单中选择新建命令
在弹出窗口中选择Web Service->Web Service
单击Next,出现Web Service,在Service Implementation后单击Browse
按钮来添加一个实现类,直接指向刚才新建HelloWorld.java
将Web Service type中滑块调到Start service的位置,
将Client type中滑块调到Test Client的位置
等启动后,单击Next按钮一切默认,最后Finsh
访问Web Service
http://localhost:8080/WebServiceProject/services/HelloWorld?wsdl
至此,我们就完成了helloworld.java发布Web的过程
WebServiceProject和WebServiceProjectClient是两个滑块对应的服务项目
4.开发Web Service客户端-----AxisHelloWorldClient项目
为了开发客户端服务器,新建一个AxisHelloWorldClient,并新建一个包com.demo
1.导出Web Service客户端代码
在AxisHelloWorldClient上右键项目,新建,点击Web Services--》Web Service Client
在Service implementation中输入http://localhost:8080/WebServiceProject/services/HelloWorld?wsdl
点击Finsh,此时AxisHelloWorldClient项目com.demo包下产生Web服务端java代码
2.编写客户端类
根据HelloWorldLocator的getHelloWorldHttpSoap11Endpoint()的方法获得Hello World实例
复制代码
1 package com.demo;
2
3 import java.rmi.RemoteException;
4
5 import javax.xml.rpc.ServiceException;
6
7 public class HelloWorldClient {
8
9 public static void main(String[] args) {
10
11 String world;
12 try {
13 world = new HelloWorldLocator().getHelloWorldHttpSoap11Endpoint().sayHello("World");
14 System.out.println(world);
15 } catch (RemoteException e) {
16 // TODO Auto-generated catch block
17 e.printStackTrace();
18 } catch (ServiceException e) {
19 // TODO Auto-generated catch block
20 e.printStackTrace();
21 }
22 }
23 }
复制代码
3.运行客户端类
此时运行客户端HelloWorldClient.java
该结果是通过服务端调用返回的,同时服务端又输出world
- 打包AxisHelloWorldServer.zip和AxisHelloWorldClient.zip
以后导入到eclipse直接使用