zoukankan      html  css  js  c++  java
  • apache+tomcat 集群 sturts上传文件 FormFile 序列化问题

    这破问题我还找了半天!!!!!!!!!!

    错误如下:

    严重: Unable to serialize delta request for sessionid [7C207DEBA5350582EFF4321AD3089918]
    java.io.NotSerializableException: org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
        at org.apache.catalina.cluster.session.DeltaRequest$AttributeInfo.writeExternal(DeltaRequest.java:347)
        at org.apache.catalina.cluster.session.DeltaRequest.writeExternal(DeltaRequest.java:264)
        at org.apache.catalina.cluster.session.DeltaManager.unloadDeltaRequest(DeltaManager.java:715)
        at org.apache.catalina.cluster.session.DeltaManager.requestCompleted(DeltaManager.java:1298)
        at org.apache.catalina.cluster.tcp.ReplicationValve.send(ReplicationValve.java:549)
        at org.apache.catalina.cluster.tcp.ReplicationValve.sendMessage(ReplicationValve.java:536)
        at org.apache.catalina.cluster.tcp.ReplicationValve.sendSessionReplicationMessage(ReplicationValve.java:518)
        at org.apache.catalina.cluster.tcp.ReplicationValve.sendReplicationMessage(ReplicationValve.java:428)
        at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:362)
        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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:595)

    解决办法:

    private transient FormFile file = null;

    java关键字Transient  :
    Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。 

  • 相关阅读:
    九度 1172:哈夫曼树
    mac os 错误提示:下载失败 使用已购页面再试一次 解决方法
    WCF学习资料汇总
    豆瓣FM 歌词跟随插件
    大型网站架构和高并发的一些想法
    MAC OS 系统使用心得
    Windows 7 安装.net framework 4.0 失败,错误HRESULT 0xc8000222解决办法
    json官方学习档案
    转:查看sql语句执行时间/测试sql语句性能
    从数据库反向生成django的models
  • 原文地址:https://www.cnblogs.com/skyblue/p/2867829.html
Copyright © 2011-2022 走看看