2017-08-25 1 views
-1

を含むファイルで: -Serializeを一覧<BufferedImageの>私はBufferedImageの ケースの読みのリストをシリアライズしようとしている私のすべてのオブジェクト

List <BufferedImage> = new ArrayList<BufferedImage>(); 
     public void serialize() 
    { 
     getDraftApp().getSerializeImages().add(ImageIO.read(new 
     ByteArrayInputStream(read(image)))); 
try { 
      String path = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/")+"Applications"+"\\"+getsHandler().getDraftApp().getAppId()+"-"+getsHandler().getDraftApp().getAppVersion()+"\\"+"app.proj"; 
      FileOutputStream fileOut = new FileOutputStream(path); 
      System.out.println("Data is saved in : "+getsHandler().getDraftApp().getPath()); 
      ObjectOutputStream out = new ObjectOutputStream(fileOut); 
      out.writeObject(getsHandler().getDraftApp()); 
      out.close(); 
      fileOut.close(); 
      System.out.printf("Serialized data is saved!"); 
     } catch (IOException i) { 
      i.printStackTrace(); 
     } catch (ClassNotFoundException ex) { 
      ex.printStackTrace(); 
      Logger.getLogger(ObjectManagements.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
     } 
      public byte[] read(File file) throws IOException { 
      ByteArrayOutputStream ous = null; 
      InputStream ios = null; 
      try { 
       byte[] buffer = new byte[4096]; 
       ous = new ByteArrayOutputStream(); 
       ios = new FileInputStream(file); 
       int read = 0; 
       while ((read = ios.read(buffer)) != -1) { 
        ous.write(buffer, 0, read); 
       } 
      }finally { 
       try { 
        if (ous != null) 
         ous.close(); 
       } catch (IOException e) { 
       } 

       try { 
        if (ios != null) 
         ios.close(); 
       } catch (IOException e) { 
       } 
      } 
      return ous.toByteArray(); 
     } 

ログイン

eachImage : [email protected]: type = 5 ColorModel: #pixelBits = 
24 numComponents = 3 color space = [email protected] transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 960 height = 678 #numDataElements 3 dataOff[0] = 2 

、それが正常に動作します"私のリストを保持しているかどうかはわかりませんが、実際にはわかりませんが、デシリアライズしようとするとNullPointerExceptionが返ってきます。 ケースを書く:

public MdapApplication DeserializeApp(SessionHandler Sbean , String Path) { 
     setsHandler(Sbean); 
     try { 
      FileInputStream fileIn = new FileInputStream(Path +"\\"+ "app.proj");    
      ObjectInputStream in = new ObjectInputStream(fileIn); 
      MdapApplication DF = (MdapApplication) in.readObject(); 
      in.close(); 
      fileIn.close(); 
      return DF; 
     } catch (IOException i) { 
      i.printStackTrace(); 
      return null; 
     } catch (ClassNotFoundException c) { 
      System.out.println("Application class not found"); 
      c.printStackTrace(); 
      return null; 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
      return null; 
     } 
    } 

その後、私は二日を検索し、私は何もところで、 "マイリストはPNG-JPGが含まれていませんでした" が見つかり

MdapApplication temp = obm.DeserializeApp(getsHandler(), amfFile.getPath()); 
    getDraftApp() = temp; 
for (BufferedImage eachImage : getsHandler().getDraftApp().getSerializeImages()) { 
      System.out.println("eachImage : "+eachImage); 
      ImageIO.write(eachImage, "png", new File(getsHandler().getDraftApp().getPath() +"\\"+ "myImage.png")); // png is lossless 
     } 

ログイン

25-Aug-2017 03:48:24.266 WARNING [http-nio-8084-exec-790] 
com.sun.faces.lifecycle.InvokeApplicationPhase.execute #{apps.modify(mdapApp)}: java.lang.NullPointerException 
javax.faces.FacesException: #{apps.modify(mdapApp)}: java.lang.NullPointerException 
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118) 
at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
at javax.faces.component.UIData.broadcast(UIData.java:1108) 
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) Caused by: 
javax.faces.el.EvaluationException: java.lang.NullPointerException 
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) 
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
... 35 more Caused by: java.lang.NullPointerException 
at Beans.HomeScreenBean.deserializeImages(HomeScreenBean.java:271) 
at Beans.HomeScreenBean.modify(HomeScreenBean.java:301) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.apache.el.parser.AstValue.invoke(AstValue.java:247) 
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267) 
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
... 36 more 

25-Aug-2017 03:48:24.353 SEVERE [http-nio-8084-exec-790] 
com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError 
javax.faces.el.EvaluationException: java.lang.NullPointerException 
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) 
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
at javax.faces.component.UIData.broadcast(UIData.java:1108) 
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: 
java.lang.NullPointerException 
at Beans.HomeScreenBean.deserializeImages(HomeScreenBean.java:271) 
at Beans.HomeScreenBean.modify(HomeScreenBean.java:301) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.apache.el.parser.AstValue.invoke(AstValue.java:247) 
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267) 
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
... 36 more 

ファイルからオブジェクトを取得

+0

NPEを投げているのは何ですか?あなたのスタックトレースを教えてください。 – shmosel

+0

for(BufferedImage eachImage:getsHandler()。getDialApp()。getSerializeImages())... –

+0

デシリアライズ時のNPEリスト –

答えて

0

ファイルサイズが1000未満の場合は、ByteArrayOutputStreamを作成しないので、ous.toByteArray()はNPEを投げます。

明らかに。

+0

BufferedImageのリストを逆シリアル化するときに問題をシリアル化するときに問題はありません。なぜわかるのですか? –

+0

私が参照しているコードは 'public byte [] read(...)'にあります。自分で見ることができますか?これはシリアライゼーションコードではなく、デシリアライズコードです – EJP

+0

BTW私はシリアル化しようとしました。 1つのファイルに保存せずに動作する同じ関数内で "テスト専用"を逆シリアル化する –

関連する問題

 関連する問題