ImageVerifierCode 换一换
格式:DOCX , 页数:5 ,大小:16.36KB ,
资源ID:642846      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/642846.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(转 axis 自定义对象序列化阿甘正传.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

转 axis 自定义对象序列化阿甘正传.docx

1、转 axis 自定义对象序列化阿甘正传转 axis 自定义对象序列化-阿甘正传 基于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.SimpleObjectServ

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

3、= null;call = (Call) 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 S

4、ervice对象传递的对象,必需继承Serializablepackage 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

5、 getFloat() return 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 SimpleObject

6、Service public String 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(int i,float f,String str) System.out.println(Si

7、mpleObjectService createSimpleObject 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

8、.Service;import org.apache.axis.encoding.ser.BeanDeserializerFactory;import org.apache.axis.encoding.ser.BeanSerializerFactory;public class SimpleObjectClient public static void main(String args) String ret = ; try String wsdlUrl = http:/localhost:8080/axis/services/SimpleObjectService?wsdl; String

9、nameSpaceUri = http:/localhost:8080/axis/services/SimpleObjectService; /创建调用对象 Service service = new Service(); Call call = null; call = (Call) service.createCall(); /注册SimpleObject的序列化类型 QName qn = new QName(urn:BeanService,SimpleObject); call.registerTypeMapping(SimpleObject.class, qn, new BeanSer

10、ializerFactory(SimpleObject.class, qn), new BeanDeserializerFactory(SimpleObject.class, qn); /调用sayHello System.out.println(>>>sayHello); call.setOperationName(new QName(nameSpaceUri, sayHello); call.setTargetEndpointAddress(new .URL(wsdlUrl); ret = (String) call.invoke(new Object liu2 ); S

11、ystem.out.println(return value is + ret); /调用getDesc System.out.println(>>>getString); SimpleObject so = new SimpleObject(); so.setString(hello!); QName getDescQn = new QName(nameSpaceUri, getString); call.setOperationName(getDescQn); call.setTargetEndpointAddress(new .URL(wsdlUrl); ret = (

12、String) call.invoke(new Object so ); System.out.println(return value is + ret); /调用createSimpleObject System.out.println(>>>createSimpleObject); QName getObjectQn = new QName(nameSpaceUri, createSimpleObject); call.setOperationName(getObjectQn); call.setTargetEndpointAddress(new .URL(wsdlUr

13、l); SimpleObject rtnSO = (SimpleObject) call.invoke(new Object new Integer(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:/xm

14、l.apache.org/axis/wsdd/providers/java xmlns=http:/xml.apache.org/axis/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 valu

15、e=com.whcyit.axis.SimpleObjectService/> <beanMapping languageSpecificType=java:com.whcyit.axis.SimpleObject qname=ns:SimpleObject xmlns:ns=urn:BeanService/> </service><transport name=http> <requestFlow> <handler type=URLMapper/> </requestFlow></transport></deployment>Service StylesAXIS有四种service styles,分别是:RPC, Document, W

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1