当在.NET中序列化对象,然后在Java语言中反序列化时,有什么兼容性问题需要注意吗?
我在用java反序列化已经用.NET序列化的对象时遇到了问题。
以下是详细的问题说明:
在.NET平台上,我有一个cookie。1. Cookie被序列化2.然后使用Triple DES算法对其进行加密。3.将其发送到Java应用程序
在Java平台1.使用Triple DES解密cookie,这会给出一些字节2.使用如下命令反序列化这些字节
new ObjectInputStream( new ByteArrayInputStream(byte[] decryptedCookie)).readObject();
我得到的异常堆栈跟踪是: java.io.StreamCorruptedException: invalid stream header: 2F774555 at java.io.ObjectInputStream.readStreamHeader(Unknown Source) at java.io.ObjectInputStream。(未知源)
发布于 2009-08-20 03:50:13
Java为.Net和WOX提供了可互操作的序列化。
发布于 2009-08-20 03:42:11
如果你用xml进行序列化,那么你应该不会遇到任何java反序列化的问题,因为更糟糕的是,你必须编写自己的代码来重构对象。
发布于 2009-08-20 11:16:38
java和.Net序列化为二进制的方式是不同的。一个人怎么知道另一个人的对象,比如.Net会有字典和Java Maps?(另外,字符串的二进制表示可能会有所不同。
您必须使用某种既能理解又能编码的数据格式来完成对象映射。因此,上面的答案提到了XML和WOX。我也和公司内部的产品一起工作过。
https://stackoverflow.com/questions/1303792
复制相似问题