问题描述
我正在尝试使用 com.thoughtworks.xstream.XStream 将字符串转换为 xml。
转换后的 xml 在开头和结尾都有 <string></string>
标记。
我正在使用 replaceAll(xstreamXML.toXML(sq).replaceAll("","").replaceAll("","") 删除它。然后我压缩这个 xml 并通过网络发送
public static String convertToZipformat(String object){
String sqResponseZipped = null;
ObjectOutputStream objectOutputStream = null;
GZIPOutputStream gzipOut = null;
CheckServiceCoverageResponse obj = null;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
XStream xstreamXML = new XStream();
String xmlInputResponse=xstreamXML.toXML(object).replaceAll("<string>","").replaceAll("</string>","").replaceAll("<","<").replaceAll(">",">").replaceAll("'","'").replaceAll(""","\"");
try {
gzipOut = new GZIPOutputStream(byteArrayOutputStream);
objectOutputStream = new ObjectOutputStream(gzipOut);
objectOutputStream.writeObject(xmlInputResponse);
objectOutputStream.close();
gzipOut.close();
byte[] sqResponseByte = byteArrayOutputStream.toByteArray();
Base64 base64Encoder = new Base64(-1);
sqResponseZipped = base64Encoder.encodetoString(sqResponseByte);
return sqResponseZipped;
}catch (IOException e) {
e.getMessage();
}
}
通过网络发送时,出现以下异常
com.thoughtworks.xstream.core.BaseException; local class incompatible: stream classdesc serialVersionUID
。
但是当我删除 .replaceAll("<string>","")
并保留 replaceAll() 的其余部分时,没有问题。
我需要删除字符串标签,否则无法解压缩并转换为另一侧的相应对象
异常堆栈跟踪:
Caused by: java.io.InvalidClassException: com.thoughtworks.xstream.core.BaseException; local class incompatible: stream classdesc serialVersionUID = 1543586517680882547,local class serialVersionUID = 3052261163727978067 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617) ~[na:1.7.0_51] at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) ~[na:1.7.0_51] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) ~[na:1.7.0_51] at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) ~[na:1.7.0_51] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) ~[na:1.7.0_51] at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) ~[na:1.7.0_51] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) ~[na:1.7.0_51] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) ~[na:1.7.0_51] at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1350) ~[na:1.7.0_51] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) ~[na:1.7.0_51] at java.io.ObjectInputStream.defaultReadobject(ObjectInputStream.java:500) ~[na:1.7.0_51] at java.lang.Throwable.readobject(Throwable.java:914) ~[na:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_51] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51] at java.io.ObjectStreamClass.invokeReadobject(ObjectStreamClass.java:1017) ~[na:1.7.0_51] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893) ~[na:1.7.0_51] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) ~[na:1.7.0_51] at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1350) ~[na:1.7.0_51] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) ~[na:1.7.0_51] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) ~[na:1.7.0_51] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) ~[na:1.7.0_51] at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1350) ~[na:1.7.0_51] at java.io.ObjectInputStream.readobject(ObjectInputStream.java:370) ~[na:1.7.0_51] at weblogic.utils.io.ChunkedobjectInputStream.readobject(ChunkedobjectInputStream.java:208) ~[weblogic.server.merged.jar:12.1.2.0.0] at weblogic.rjvm.MsgAbbrevInputStream.readobject(MsgAbbrevInputStream.java:602) ~[weblogic.server.merged.jar:12.1.2.0.0]
需要解决方案
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)