Eclipse用Axis框架开发WebService
- 格式:docx
- 大小:439.42 KB
- 文档页数:8
Eclipse开发WebService
一、 简介
Axis: axis全称Apache EXtensible Interaction System 即阿帕奇可扩展交互系统。Axis
本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。
(摘自:百度百科:http://baike.baidu.com/view/25631.htm)
二、 开发环境
Eclipse、jdk1.6、基于axis开发,需要下载axis-bin.zip
三、 操作步骤
Axis我现在用了两种方法来实现
第一种:
1. 创建一个动态网站应用程序,如下图:
2.编写Service接口,代码如下:
package com.sinosoft.service;
import javax.jws.WebService;
/**
* WebService简单接口
*
* FangShuai 2012-06-02 v1.0.0
*/
public interface MyService {
/**
* 实现加法运算
* @param a
* @param b
* @return
*/
public int add(int a, int b);
/**
* 实现减法运算
* @param a
* @param b
* @return
*/
public int minus(int a, int b);
}
3.编写Service实现类:代码如下:
package com.sinosoft.service;
import javax.jws.WebService;
/**
* WebService接口实现
*
* FangShuai 2012-06-02 v1.0.0
*/
public class MyServiceImpl implements MyService {
/**
* 实现加法运算
* @param a
* @param b
* @return
*/
public int add(int a, int b) {
System.out.println(a+"+"+b+"="+(a+b));
return a+b;
}
/**
* 实现减法运算
* @param a
* @param b
* @return
*/
public int minus(int a, int b) {
System.out.println(a+"-"+b+"="+(a-b));
return a-b;
}
}
4.用eclipse自动生成webService,如下图所示:
图中方框部分为必选项,画圆圈的地方是程序中自动给出来的,只要将axis jar包解压
后myeclipse即可自动支持,所以不用手动添加jar文件。
5.编写测试类,代码如下:
package com.sinosoft.service;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.AxisFault;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**
* 客户端测试类
*
* FangShuai 2012-06-02 v1.0.0
*/
public class TestClient {
public static void main(String[] args) {
try {
//服务所在的地址
String endPoint =
"http://localhost:8080/service_axis_test/services/MyServiceImp
l";
//创建Service调用call
Service service = new Service();
Call call = (Call) service.createCall();
//设置service所在位置
call.setTargetEndpointAddress(new URL(endPoint));
//设置需要调用的服务当中的方法
call.setOperationName("add");
//传递参数用String封装输出结果
String result = (String) call.invoke(new
Object[]{"12","23"});
System.out.println(result);
} catch (ServiceException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
第二种:
1. 创建一个java Project,然后创建一个webService Client,如下图:
自动生成的客户端代码图如下:
2.编写测试类,代码如下:
package com.sinosoft.service;
import java.rmi.RemoteException;
/**
* 客户端测试类
*
* FangShuai 2012-06-02 v1.0.0
*/
public class TestClient {
public static void main(String[] args) {
try {
//创建一个服务代理对象
MyServiceImplProxy ms = new MyServiceImplProxy();
//直接调用方法
ms.add(12, 22);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
四、 总结
以上两种方法都是基于Axis实现的,在我所做得这几个例子当中,给我的感觉是Axis
比使用Jax-ws开发简便,更方便指定wsdl中方法中的属性名,简化了许多的操作。