转axis自定义对象序列化

上传人:夏** 文档编号:510033344 上传时间:2022-10-23 格式:DOC 页数:10 大小:39.50KB
返回 下载 相关 举报
转axis自定义对象序列化_第1页
第1页 / 共10页
转axis自定义对象序列化_第2页
第2页 / 共10页
转axis自定义对象序列化_第3页
第3页 / 共10页
转axis自定义对象序列化_第4页
第4页 / 共10页
转axis自定义对象序列化_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《转axis自定义对象序列化》由会员分享,可在线阅读,更多相关《转axis自定义对象序列化(10页珍藏版)》请在金锄头文库上搜索。

1、基于 Axis 的自定义对象序列化1. 在 Axis 服务端,注册自定义对象的序列化 /反序列化器 主要是修改 axis 安装目录下 WEB-INF/server-config.wsdd 文 件。<service name=SimpleObjectService provider=java:RPC><parameter name=allowedMethods value=*/><parameter name=className value=com.whcyit.axis.SimpleObjectService/><beanMapping languag

2、eSpecificType=java:com.whcyit.axis.SimpleObjectqname=ns:SimpleObject xmlns:ns=urn:BeanService/> </service>注意 service/beanMapping 的定义。 languageSpecificType 中定 义使用那个类 , qname 定义类的名称。 2. 在 Axis 客户端, 注册自定义对象的序列化 / 反序列化器。核心代码如下: /创建调用对象Service service = new Service();Call call = null;call = (Cal

3、l) service.createCall();/注册 SimpleObject 的序列化类型QName qn = new QName(urn:BeanService,SimpleObject); call.registerTypeMapping(SimpleObject.class, qn,new BeanSerializerFactory(SimpleObject.class, qn),new BeanDeserializerFactory(SimpleObject.class,qn); 全部代码示例如下: /SimpleObject.java/Web Service 对象传递的对象,必需

4、继承 Serializable package com.whcyit.axis;import java.io.Serializable;public class SimpleObject implements Serializable private static final long serialVersionUID = -6414428095965735488L;private int i = 0;private float f = 0.0f;private String str = ;public SimpleObject() public float getFloat() return

5、 f;public void setFloat(float f) this.f = f; public int getInt() return i;public void setInt(int i) this.i = i;public String getString() return str;public void setString(String str) this.str = str;/ SimpleObjectService.java /服务程序package com.whcyit.axis;public class SimpleObjectService public String

6、sayHello(String name) return Hello + name +!;public String getString(SimpleObject obj) System.out.println(SimpleObjectService getString invoked!);return return by serviced:+obj.getString();public SimpleObject createSimpleObject(inti,float f,String str) System.out.println(SimpleObjectService createSi

7、mpleObject invoked!);SimpleObject so = new SimpleObject(); so.setInt(i);so.setFloat(f);so.setString(str);return so;/ SimpleObjectClient.java/客户端调用文件package com.whcyit.axis;import javax.xml.namespace.QName;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis

8、.encoding.ser.BeanDeserializerFactory; importorg.apache.axis.encoding.ser.BeanSerializerFactory;public classpublic static void main(StringSimpleObjectClient args) String ret = try String wsdlUrl =http:/localhost:8080/axis/services/SimpleObjectService?wsdl;String nameSpaceUri =http:/localhost:8080/ax

9、is/services/SimpleObjectService;Service();Service service = newCall call = null;call = (Call) service.createCall();/注册 SimpleObject 的序列化类型QName qn = new QName(urn:BeanService,SimpleObject);call.registerTypeMapping(SimpleObject.class, qn,new BeanSerializerFactory(SimpleObject.class, qn),new BeanDeser

10、ializerFactory(SimpleObject.class, qn);/调用 sayHelloSystem.out.println(>>>sayHello);call.setOperationName(newQName(nameSpaceUri, sayHello);call.setTargetEndpointAddress(new .URL(wsdlUrl);ret = (String) call.invoke(new Object liu2 );System.out.println(return value is + ret);/ 调用 getDescSystem

11、.out.println(>>>getString);SimpleObject so = new SimpleObject(); so.setString(hello!); QName getDescQn = new QName(nameSpaceUri, getString); call.setOperationName(getDescQn);call.setTargetEndpointAddress(.URL(wsdlUrl);ret = (String)call.invoke(new Object so );System.out.println(return value

12、 is + ret);/调用 createSimpleObjectSystem.out.println(>>>createSimpleObject); QName getObjectQn = new QName(nameSpaceUri, createSimpleObject); call.setOperationName(getObjectQn); call.setTargetEndpointAddress(new .URL(wsdlUrl); SimpleObject rtnSO = (SimpleObject) call.invoke(new Object new In

13、teger(1),new Float(0.1f),liu2 );System.out.println(return object +rtnSO.getString(); catch (Exception ex) ex.printStackTrace(); /server-config.wsdd/ 服务端配置文件 <?xml version=1.0 encoding=UTF-8?><deployment xmlns:java=http:/xml.apache.org/axis/wsdd/providers/java xmlns=http:/xml.apache.org/axis

14、/wsdd/><handler type=java:org.apache.axis.handlers.http.URLMapper name=URLMapper/> <service name=SimpleObjectService provider=java:RPC> <parameter name=allowedMethods value=*/><parameter name=className value=com.whcyit.axis.SimpleObjectService/><beanMapping languageSpec

15、ificType=java:com.whcyit.axis.SimpleObject qname=ns:SimpleObjectxmlns:ns=urn:BeanService/></service><transport name=http><requestFlow><handler type=URLMapper/></requestFlow></transport></deployment>Service StylesAXIS 有四种 service styles,分别是:RPC, Document, Wrapped, and Message 最常用的就是 RPC和Message。RPC :在AXIS中是一个默认选项。当你部署的时候使用下 列两

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号