com.thoughtworks.xstream.core.BaseException:本地类不兼容:流类desc serialVersionUID

问题描述

我正在尝试使用 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("&lt;","<").replaceAll("&gt;",">").replaceAll("&apos;","'").replaceAll("&quot;","\"");
        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 (将#修改为@)