-
请问用web service直接传输序列化的java对象妥当不妥当?0
刚接触web service,对web service的了解程度仅限于知道,通过web service可以实现远程方法的调用,其它几乎一无所知。
不像rmi,我发现web service调用方法的时候,必须在方法参数中显示申明参数的类型,貌似不支持多态?
为了让它支持多态,我简单的创建了这样一个java类:
@XmlAccessorType(XmlAccessType.FIELD) public class TransferModel { public TransferModel() { } public TransferModel(Object obj) { this.setObject(obj); } private byte[] bytes; private Class<?> objClass; public void setObject(Object obj) { this.objClass = obj.getClass(); ByteArrayOutputStream bo = null; ObjectOutputStream oo = null; try { bo = new ByteArrayOutputStream(); oo = new ObjectOutputStream(bo); oo.writeObject(obj); bytes = bo.toByteArray(); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } finally { try { bo.close(); oo.close(); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } } } public Object getObject() { if (bytes == null) { return null; } ByteArrayInputStream bin = null; ObjectInputStream objIn = null; try { bin = new ByteArrayInputStream(bytes); objIn = new ObjectInputStream(bin); return objIn.readObject(); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } finally { try { bin.close(); objIn.close(); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } } } public Class<?> getObjectClass() { return objClass; } }
这里,我把java对象序列化为二进制数据,再通过web service进行传输,请问这样做会不会带来问题?
2012年8月04日 14:54
2个答案 按时间排序 按投票排序
-
传递序列化的对象时可以的,不过,这样没啥意义和好处。
只传递一个对象的话,完全可以传递一个XML文件,文件里包含这个对象的所有属性值,这样接收方也好接收和解析。如果是传递多个对象的话,你的序列化就不太好使了,这时候就需要传递序列的LIST等对象,个人建议不要使用。还是传递XML文件比较好2012年8月08日 16:43
-
webservice原理:
传递数据:xml
传输协议:soap(soap=http+xml。基于http协议传输xml数据)
任何接口交互,只要搞清楚以上两点就融会贯通了。
如果想比较深入了解webservice,可参考我的博文(基于axis的源码分析)
http://dead-knight.iteye.com/blog/731024
2012年8月05日 22:39
相关推荐
java 对象的序列化与反序列化 java 对象的序列化与反序列化
Xson是一个Java对象序列化和反序列化程序。支持Java对象到字节数组的序列化,和从字节数组到Java对象的反序列化。 Maven: <groupId>com.github.xsonorg</groupId> <artifactId>xson-core <version>1.0.1 ...
详细介绍了web service 中的序列化与反序列化方式,三种形式
java对象 java序列化 java反序列化
通过实现 Serializable 接口,Java对象可以被序列化和反序列化。序列化可以将对象转换为字节流,以便于存储或传输。反序列化则可以将字节流重新转换为原始对象。需要注意的是,序列化和反序列化的类必须具有相同的 ...
极好的序列化与发序列化代码。可以处理array集合,数组或者单个对象等的序列化与反序列化。
java 序列化对象 MARSHALLING UNMARSHALLING
xstream-1.1.3正反序列化JAVA对象 xstream-1.1.3.jar 使用xstream-1.1.3.jar 进行序列化 JAVA 对象的示例三个
对象序列化.ppt 对象序列化.ppt 对象序列化.ppt 对象序列化.ppt 对象序列化.ppt
将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机。对象序列化功能非常简单、强大,在RMI、Socket、JMS、EJB都有应用。对象...
深入探索Java对象的序列化 对象序列化就是把对象写入到输出流中,用来存储或者传输。...实现了序列化接口的类,如果其成员不需要序列化进去,则使用transient关键字进行修饰。 下面给出个例子:
这是Java序列化标准规范,对于研究序列化源码能够提供指导作用,为深入研究Java序列技术奠定基础。
SOAP序列化:对象序列化之后的结果符合SOAP协议,也就是可以通过SOAP 协议传输,通过System.Runtime.Serialization.Formatters.Soap命名空间下的SoapFormatter类来实现的。 XML序列化:对象序列化之后的结果是XML...
演示案例:Java 反序列化及命令执行代码测试WebGoat_Javaweb 靶场反序列化测试0x01 注入判断,获取管理员帐号密码:根据提示附件进行 java
Java对象的序列化与反序列化Java开发Java经验技巧共10页.pdf.zip
对象序列化TCP传输 对象序列化TCP传输 对象序列化TCP传输 对象序列化TCP传输
Java对象序列化的秘密
在java.beans包中,有两个好东西,XMLEncoder和XMLDecoder。从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。本文介绍了这两个可以把JAVA对象序列化保存为XML文件的工具类。
android(包括java)序列化一个对象传给php去做处理,或是接到php的序列化的对象在java中做处理的工具jar包以及使用方法. 使用方法: byte[] b = null; b = PHPSerializer.serialize(一个对象);//将一个对象序列化后返回...
把Java对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为Java对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1)把对象的字节序列地保存到硬盘上,通常存放在一个文件中...