精华内容
下载资源
问答
  • 当部署到tomcat 6中时我也越来越 这意味着您已将一个对象放置在不可序列化的会话中,并且已在服务器停止上启用了会话持久性。 您有多种选择: 使有问题的类实现Serializable 从HttpSessionListener的...

    在本机上本地运行应用程序时,该应用程序可以完美运行。 部署到质量检查程序后,会收到以下错误。 我正在本地和QA中运行Tomcat 5.5.23。 该应用程序还使用Spring MVC。

    ERROR 2011-03-01 16:41:42: Exception loading sessions from persistent storagejava.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.everbank.uft.entities.ldc.VoidReason

    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)

    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)

    at java.util.ArrayList.readObject(ArrayList.java:593)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)

    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)

    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)

    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)

    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)

    at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1402)

    at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:931)

    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)

    at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)

    at org.apache.catalina.session.StandardManager.start(StandardManager.java:637)

    at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:432)

    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4160)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)

    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)

    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)

    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)

    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)

    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)

    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)

    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)

    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)

    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

    at org.apache.catalina.core.StandardService.start(StandardService.java:448)

    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)

    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)

    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

    Caused by: java.io.NotSerializableException: com.everbank.uft.entities.ldc.VoidReason

    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)

    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)

    at java.util.ArrayList.writeObject(ArrayList.java:570)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)

    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)

    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)

    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)

    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)

    at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1478)

    at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:948)

    at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517)

    at org.apache.catalina.session.StandardManager.unload(StandardManager.java:463)

    at org.apache.catalina.session.StandardManager.stop(StandardManager.java:667)

    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4363)

    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:893)

    at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1180)

    at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1151)

    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313)

    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)

    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1055)

    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1067)

    at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448)

    at org.apache.catalina.core.StandardService.stop(StandardService.java:510)

    at org.apache.catalina.core.StandardServer.stop(StandardServer.java:734)

    at org.apache.catalina.startup.Catalina.stop(Catalina.java:602)

    at org.apache.catalina.startup.Catalina.start(Catalina.java:577)

    ... 6 more

    ERROR 2011-03-01 16:42:49: UserTrackingFilter.doFilter() failed. message:Servlet execution threw an exceptionjavax.servlet.ServletException: Servlet execution threw an exception

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at com.everbank.uft.filters.UserTrackingFilter.doFilter(UserTrackingFilter.java:65)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at com.everbank.uft.filters.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:36)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

    at java.lang.Thread.run(Thread.java:619)

    需要更多信息。.您如何部署到" QA"? 环境有何不同? 从堆栈跟踪中,错误源自Hibernate,因此应用程序中可能存在通过网络访问实体的错误? Hibernate要求实体可序列化以跨网络边界发送内容。 建议com.everbank.uft.entities.ldc.VoidReason需要可序列化。

    @dionysus如何解决这个问题。 当部署到tomcat 6中时我也越来越

    这意味着您已将一个对象放置在不可序列化的会话中,并且已在服务器停止上启用了会话持久性。

    您有多种选择:

    使有问题的类实现Serializable

    从HttpSessionListener的sessionDestroyed(..)的会话中将其删除

    如果它是会话中存储的另一个类的成员,则将其设置为transient

    只需忽略错误

    您还应该清除tomcat的"工作"目录,以便不还原以前的序列化会话。

    谢谢!! 使VoidReason类可序列化有所帮助。

    @dionysus-在这种情况下,请随时将答案标记为已接受:)

    com.everbank.uft.entities.ldc.VoidReason不可序列化,它不实现可序列化或继承自可序列化的东西。

    谢谢您的帮助!!

    您的QA服务器上是否可能存在序列化的Tomcat会话,这些会话已损坏或阻塞?

    尝试删除:$ {catalina.home} / work / Catalina / localhost /"无论您的应用程序名称是什么" /SESSION.ser

    您能告诉我SESSION.ser文件到底包含什么吗?

    如果您启用了重新启动持久性,则它包含会话状态。 tomcat.apache.org/tomcat-5.5-doc/config/manager.html(在Standard Manager实施下)

    展开全文
  • 参考:... assertEquals(obj.getClass().getName(),"java.math.BigInteger"); assertEquals(((BigInteger)obj).intValue(), 0); } 关键处理 byte[] str = baos.toByteArray();

    参考:http://tristan1.iteye.com/blo...public void testDeserialize() throws IOException, ClassNotFoundException {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    ObjectOutputStream oos = new ObjectOutputStream(baos);

    BigInteger bi = new BigInteger("0");

    oos.writeObject(bi); byte[] str = baos.toByteArray();

    ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new ByteArrayInputStream(str)));

    Object obj = ois.readObject();

    assertNotNull(obj);

    assertEquals(obj.getClass().getName(),"java.math.BigInteger");

    assertEquals(((BigInteger)obj).intValue(), 0);

    }

    关键处理

    byte[] str = baos.toByteArray();

    展开全文
  • 序列化异常:java.io.InvalidClassException: DemoPerson; local class incompatible: stream classdesc serialVersionUID = -2071565876962058344, local class serialVersionUID = -8345153069362641443 序列化...

    序列化异常:

    java.io.InvalidClassException: DemoPerson; local class incompatible: stream classdesc serialVersionUID = -2071565876962058344,  local class serialVersionUID = -8345153069362641443
    

    序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输。    对象 -- 流数据(ObjectOutputStream)

    反序列化流:把文本文件中的流对象数据或者网络中的流对象数据还原成对象。流数据 -- 对象(ObjectInputStream)

    序列化流和反序列化流不同于字节流 字符流 内存字节流,这些都是把字符串写入/读取文件,序列化流和反序列化流可以将对象写入/读取文本文件中.

    但是我们要注意的是,写入和读取的文件要实现Serializable这个接口,当然这个接口是没有任何方法的,直接implements就好,类似于这种没有任何方法的接口被称为标记接口.

    解决方法:

    统一所有serialVersionUID,代码如下:

    private static final long serialVersionUID = -2071565876962058344L;

    // 实际代码

     1 public class Person implements Serializable {
     2     private static final long serialVersionUID = -2071565876962058344L;
     3 
     4     private String name;
     5 
     6     // private int age;
     7 
     8     private transient int age;
     9 
    10     // int age;
    11 
    12     public Person() {
    13         super();
    14     }
    15 
    16     public Person(String name, int age) {
    17         super();
    18         this.name = name;
    19         this.age = age;
    20     }
    21 
    22     public String getName() {
    23         return name;
    24     }
    25 
    26     public void setName(String name) {
    27         this.name = name;
    28     }
    29 
    30     public int getAge() {
    31         return age;
    32     }
    33 
    34     public void setAge(int age) {
    35         this.age = age;
    36     }
    37 
    38     @Override
    39     public String toString() {
    40         return "Person [name=" + name + ", age=" + age + "]";
    41     }
    42 }

    ObjectStream类:

     1 import java.io.FileInputStream;
     2 import java.io.FileOutputStream;
     3 import java.io.IOException;
     4 import java.io.ObjectInputStream;
     5 import java.io.ObjectOutputStream;
     6 
     7 public class ObjectStreamDemo {
     8     public static void main(String[] args) throws IOException, ClassNotFoundException {
     9 //        write();
    10         
    11         read();
    12     }
    13 
    14     private static void read() throws IOException, ClassNotFoundException {
    15         //反序列化对象
    16         ObjectInputStream ois = new ObjectInputStream(new FileInputStream("oss.txt"));
    17         //接收对象是Object
    18         Object ob = ois.readObject();
    19         
    20         ois.close();
    21         
    22         System.out.println(ob);
    23     }
    24 
    25     private static void write() throws IOException {
    26         //创建序列化输出流
    27         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("oss.txt"));
    28         
    29         Person p = new Person("熊大", 16);
    30         
    31         oos.writeObject(p);
    32         
    33         oos.close();
    34     }
    35 }


    展开全文
  • 序列化package com.jredu.iodemo;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import ...

    序列化

    package com.jredu.iodemo;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.text.ParseException;

    import java.text.SimpleDateFormat;//序列化:把对象的状态存储到特定存储介质中的过程//反序列化:从文件中读取对象的状态//类通过实现 java.io.Serializable 接口以启用其序列化功能.//未实现此接口的类将无法使其任何状态序列化或反序列化.

    public classxuliehuaDemo {private static voidxie(Student stu) {try{

    ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("G:/IO数据/stu.txt"));

    oos.writeObject(stu);

    oos.flush();

    oos.close();

    }catch(FileNotFoundException e) {//TODO Auto-generated catch block

    e.printStackTrace();

    }catch(IOException e) {//TODO Auto-generated catch block

    e.printStackTrace();

    }

    }private static voiddu() {try{

    ObjectInputStream ois= new ObjectInputStream(new FileInputStream("G:/IO数据/stu.txt"));

    Object obj=ois.readObject();

    ois.close();if (obj!=null) {

    Student s1=(Student)obj;

    System.out.println(s1.getName()+"\t"+s1.getBirthday());

    }

    }catch(FileNotFoundException e) {//TODO Auto-generated catch block

    e.printStackTrace();

    }catch(IOException e) {//TODO Auto-generated catch block

    e.printStackTrace();

    }catch(ClassNotFoundException e) {//TODO Auto-generated catch block

    e.printStackTrace();

    }

    }public static voidmain(String[] args) {

    Student stu= newStudent();

    stu.setStu_id("170701");

    stu.setName("lizuowei");

    SimpleDateFormat sf= new SimpleDateFormat("yyyy/MM/dd");try{

    stu.setBirthday(sf.parse("1996/04/06"));

    }catch(ParseException e) {//TODO Auto-generated catch block

    e.printStackTrace();

    }//写

    xie(stu);//读

    du();

    }

    }

    展开全文
  • 今天写代码时候遇到一个异常异常信息如下:Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.springframework.data.redis.serializer.SerializationException: Cannot ...
  • jdk 1.8 IEDA设置可以追加写入后,向目标文件序列化多个同一对象,再序列化出来时,因为反序列化时头部信息只读取一次,报出异常。请问该怎么解决?或者代码写的有问题?import java.io.*;/*** 完成多个对象的序列化...
  • 序列化异常: Exception in thread “main” java.io.InvalidClassException: cn.itcast.day012.demo08Serializable.Person; local class incompatible: stream classdesc serialVersionUID = -5145207523530997190,...
  • 一 调整 虚拟机参数二 立即 释放无用的对象三 利用序列化和反序列化技术下面是具体的代码实现package com.free;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import ...
  • 如果我们讨论的是分布式环境,那么应该非常小心地进行序列化 – 一旦序列化,您的类必须具有可预测的行为.在这种情况下,将实例字段作为对象Serializable的逻辑状态的一部分,否则 – 将它们标记为瞬态. 附:为什么...
  • 当JVM反序列化对象时,能找到class文件,但是class文件在序列化对象之后发生了修改,那么反序列化操作也会失败,抛出一个InvalidClassException异常。发生这个异常的原因如下: 该类的序列版本号与从流中读取的类...
  • java序列化反序列化

    2019-10-23 15:26:15
    代码参考 ...概念 序列化和反序列化属于通信协议的一部分。 序列化:将对象(java)转换成二进制串的过程。...java序列化需要实现Serializable,否则或抛出异常 serialVersionUID 建议序列化类设置p...
  • 序列化异常必须要有两个接口: 1 Serializable接口:只需要在需要序列化的实体类上加上implements Serializable即可,这个接口是一个空的接口,它的主要作用是标识这个对象是可序列化的对象;对象的个别属性如果不想...
  • 1、对象的序列化流ObjectOutputStream 把对象以流的方式,写入到文件中保存,叫写对象,也叫对象的序列化,对象的序列化流称为ObjectOutputStream。 把文件中保存的对象,以流的方式读取出来,叫做读对象,也叫对象...
  • import java.io.Serializable;public class Student implements Serializable {private String stuno;private String stuname;private int stuage;long serialVersionUID = 1L;public Studen...
  • 序列化概念:序列化:把Java对象转换为字节序列的过程。反序列化:把字节序列恢复为Java对象的过程。序列化接口1. 当一个对象要能被序列化,这个对象所属的类必须实现Serializable接口。否则会发生异常...
  • 在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastEx...
  • JAVA序列化

    2020-02-11 12:14:03
    序列化和反序列化的时候,会抛出NotSerializableException没有序列化异常 类通过实现 java.io.Serializable接口以启动其序列化功能。未实现该接口的类将无法使其任何状态序列化或反序列化。 Serializable接口也叫...
  • 当修改实体类之后调用接口出现不能序列化异常时,一定要检查实体之间的关系是否都是正确的.could not serialize; nested exception is org.hibernate.type.SerializationException: could not serialize原因// 学生...
  • 问题描述 各个服务都正常启动,且可以...对于内部类来说,静态的内部类才可以被序列化,而内部类不能被序列化!!! 参考链接:https://blog.csdn.net/lrxb_123/article/details/73863807 补充 java内部类嵌套时...
  • 序列化与反序列化 概念 序列化:把对象转换为字节序列的过程称为对象的序列化。在传递和保存对象的时候保证对象的完整性。 反序列化:把字节序列恢复为对象的...实现了此接口的 java 类在序列化和反序列化时, Obj...
  • } 出于性能原因,我想绕过Kryo序列化,因此我使用环境设置配置().disableGenericTypes();如Flink文档中所述。 现在, Flink抱怨这些名单: Exception in thread "main" java.lang.UnsupportedOperationException: ...
  • 在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。...
  • 序列化序列化:Serialize,将Java对象写入IO流(可以保存在数据库,文件等)反序列化:Deserialize,从IO流中读取并恢复Java对象。这么理解:序列化就是把对象封印起来,反序列化就是解封。对象中包含的不仅仅是字符,...
  • java序列化和反序列化

    2016-03-28 09:49:00
    Java序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应 实体(类)的serialVersionUID进行比较,如果相同就认为是...
  • 节选自《Java 精简入门教程》进入下面链接或点击文章末尾的 “阅读原文” 查看全部教程https://nowjava.com/book/java-simplify什么是对象序列化?在 序列化 过程中,会以一种特殊的二进制格式存储一个对象及其元...
  • java 序列化/反序列化

    2018-04-17 18:28:46
    1.基本概念序列化:对象转换...前提条件:只有实现了 Serializable 或 Externalizable 接口的类的对象才能被序列化,否则抛出异常。具体实现:在满足前提条件的情况下,怎么序列化?(1)若仅实现Serializable,则可...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,837
精华内容 734
关键字:

java序列化异常

java 订阅