Webservice接口开发
Author:Geloin
目录
1 准备工作 (1)
2 服务器端 (1)
2.1 主程序 (1)
2.l (2)
2.3 传值方式 (3)
2.4 打包 (4)
2.5 发布 (6)
3 客户端 (8)
3.1 导入包 (8)
3.2 示例代码 (8)
3.3 代码解析 (10)
3.3.1 设定服务器地址 (10)
3.3.2 设定action (10)
3.3.3 设定要调用的方法名 (11)
3.3.4 设定客户端控件 (11)
3.3.5 设定命名空间 (11)
3.3.6 设定需要传送的值 (11)
3.3.7 设定返回数据类型 (11)
3.3.8 获取返回结果 (12)
1准备工作
至/axis2/下载axis2的bin及war包,分别解压之,在环境变量中添加AXIS2_HOM,将axis2.war放置到tomcat/webapps目录下,启动tomcat,用浏览器打开localhost:8080/axis2,如下图所示:
2服务器端
2.1主程序
服务器端可以是任何一个程序,例如下面的例子:
public class Test {
// 此程序返回一个字符串
public String test1(String arg) {
return arg + “测试”;
}
// 此程序返回一个一维数组
public String[] test2(String arg) {
String[] result = new String[]{arg};
return result;
}
// 当返回值为多维数组时,将之转化为一维数组返回
public String[] test3(String arg) {
String[] result = new String[]{“测试,” + arg};
return result;
}
// 当返回值为其它类型,例如自定义类型、Map、List等时,将其序列化(冷冻或腌成咸菜)后返回
public byte[] test4(String arg) {
Map<Object, Object> map = new HashMap<Object, Object>();
map.put(“测试”, arg);
java.io.ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(map);
ByteArray();
}
}
2.l
需要在根目录下建立META-INF文件夹,文件夹下放置MANIFEST.MF和l文件,最好自己写好MANIFEST.MF文件,不然导出的时候可能会出错。
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="testService"><!—服务名,在客户端调用时需要用到--> <!—你所写的服务器端程序,包括包名-->调用webservice服务
<parameter name="ServiceClass">test.Test</parameter>
<!—方法名-->
<operation name="test1">
<!—传值方式-->
<messageReceiver
class="org.apache.ivers.RPCMessageReceiver" />
</operation>
<operation name="test2">
<messageReceiver
class="org.apache.ivers.RPCMessageReceiver" />
</operation>
<operation name="test3">
<messageReceiver
class="org.apache.ivers.RPCMessageReceiver" />
</operation>
<operation name="test4">
<messageReceiver
class="org.apache.ivers.RPCMessageReceiver" />
</operation>
</service>
</serviceGroup>
2.3传值方式
上文中提及到传值方式,即:<messageReceiver
class="org.apache.ivers.RPCMessageReceiver" />片段,在AXIS2中有两种传值方式,分别为:
org.apache.ivers.RPCMessageReceiver:即需要客户端传参数过来,又返回值。
org.apache.ivers.RPCInOnlyMessageReceiver:需要客户端传参数过来,但不返回值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。