高手帮我解决下...愁死了
public class upForm extends ActionForm implements Serializable
  private FormFile url;
 public FormFile getUrl() {
    return url;
  }
  public void setUrl(FormFile url) {
    this.url = url;
  }
public class upAction
  upForm form =(upForm) actionForm;
     if(form.getUrl().getFileSize()>= 200*1024){
       System.out.println("文件太于200KB");
       return null;
     }
只要调用到FormFile就会出现无法序列化..
以下是关闭tomcat时报的错...开启也会出错
StandardHost[localhost]: Removing web application at context path /upjar
StandardManager[/upjar]: Cannot serialize session attribute upForm for session F22D3569B3542FCA428B7E1D41C3D6E2
java.io.NotSerializableException: org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1338)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:827)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:507)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:654)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1184)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:3495)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:984)
at org.apache.catalina.core.StandardHost.remove(StandardHost.java:815)
at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:422)
at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:402)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:234)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:155)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1151)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1163)
at org.apache.catalina.core.StandardService.stop(StandardService.java:435)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:535)
at org.apache.catalina.startup.Catalina.start(Catalina.java:799)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
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:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zhftxj】截止到2008-07-16 10:34:24的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:10                       每贴平均分数:5                        
    回帖的总数量:5                        得分贴总数量:1                        回帖的得分率:20%                      
    结贴的总数量:2                        结贴的总分数:10                       
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:50.00 %               无满意结分率:200.00%                  
    敬礼!
      

  2.   

    这是开启TOMCAT报的错误
    StandardManager[/upjar]: Seeding random number generator class java.security.SecureRandom
    StandardManager[/upjar]: Seeding of random number generator has been completed
    StandardManager[/upjar]: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile
    java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1278)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
    at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1268)
    at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:810)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:411)
    at org.apache.catalina.session.StandardManager.start(StandardManager.java:617)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1104)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3371)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:638)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
    at org.apache.catalina.core.StandardService.start(StandardService.java:388)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:506)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
    at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
    at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
    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:324)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
    Caused by: java.io.NotSerializableException: org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
    at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1338)
    at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:827)
    at org.apache.catalina.session.StandardManager.unload(StandardManager.java:507)
    at org.apache.catalina.session.StandardManager.stop(StandardManager.java:654)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1184)
    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:3495)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:984)
    at org.apache.catalina.core.StandardHost.remove(StandardHost.java:815)
    at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:422)
    at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:402)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:234)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:155)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1151)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1163)
    at org.apache.catalina.core.StandardService.stop(StandardService.java:435)
    at org.apache.catalina.core.StandardServer.stop(StandardServer.java:535)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:799)
    ... 7 more
      

  3.   

    StandardManager[/upjar]: Exception loading sessions from persistent storage
    java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1278)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
    at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1268)
    at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:810)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:411)
    at org.apache.catalina.session.StandardManager.start(StandardManager.java:617)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1104)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3371)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:638)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
    at org.apache.catalina.core.StandardService.start(StandardService.java:388)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:506)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
    at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
    at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
    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:324)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
    Caused by: java.io.NotSerializableException: org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
    at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1338)
    at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:827)
    at org.apache.catalina.session.StandardManager.unload(StandardManager.java:507)
    at org.apache.catalina.session.StandardManager.stop(StandardManager.java:654)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1184)
    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:3495)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:984)
    at org.apache.catalina.core.StandardHost.remove(StandardHost.java:815)
    at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:422)
    at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:402)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:234)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:155)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1151)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1163)
    at org.apache.catalina.core.StandardService.stop(StandardService.java:435)
    at org.apache.catalina.core.StandardServer.stop(StandardServer.java:535)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:799)
    ... 7 more
      

  4.   

    上传文件。不需要这样指定吧。Serializable这个接口不实现,在JSP里指定FORM的ENCTYPEK=“multipart/form-data”
      

  5.   

    <html:form action="/upAction.do" enctype="multipart/form-data">
              <input type="file" name="url" /><br />
              <input type="submit" value="上传" />
            </html:form>
    我页面上写好了
      

  6.   

    private transient FormFile url;
      

  7.   

    我也遇到了这个问题
    用transient 关键字真的管用。。太强了感谢