2017-04-06 1 views
0

문제점이있는 것 같습니다. weblogic에 배포 할 응용 프로그램에서 ICEFaces jar를 사용했습니다. 전쟁을 전개하고 전쟁 업로드를 시도하면 작동하지 않으며 예외를 포착 할 수 있습니다. 그러나 전개 된 war 폴더를 weblogic에 배포하면 작동하지 않습니다. 폭발 된 전쟁 폴더에서 작동하기 때문에 파일을 업로드 할 폴더를 만들 수없는 것 같습니다. 이 문제를 해결하기 위해 구성해야 할 부분이 있습니까?weblogic에 war가 배포되었지만 전개 된 war 폴더가 배포 된 경우 파일 업로드가 작동하지 않습니다.

부분 web.xml에 의 :

<context-param> 
     <param-name>com.icesoft.faces.uploadDirectory</param-name> 
     <param-value>/upload</param-value> 
    </context-param> 

부분 uploadAction 액션 리스너 및 doUploadFile 같은 방법 uploadActionListener()을 갖는 작업 클래스

<ice:inputFile 
          submitOnUpload="postUpload" id="inputFileComponent" 
          actionListener="#{uploadAction.uploadActionListener}" 
          action="#{uploadAction.doUploadFile}" /> 

JSP 작용 매핑로서

스택 트레이스

com.icesoft.faces.webapp.xmlhttp.PersistentFacesState [pool-2-thread-1]  Exception occured during execute push on /jsp/upload.jspx 
javax.faces.el.EvaluationException: /jsp/upload.jspx @64,48 actionListener="#{uploadAction.uploadActionListener}": java.lang.NullPointerException 
     at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73) 
     at javax.faces.component.UICommand.broadcast(UICommand.java:131) 
     at com.icesoft.faces.component.inputfile.InputFile.broadcast(InputFile.java:152) 
     at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:115) 
     at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:191) 
     at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) 
     at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95) 
     at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70) 
     at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.execute(PersistentFacesState.java:286) 
     at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.executeAndRender(PersistentFacesState.java:314) 
     at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.setupAndExecuteAndRender(PersistentFacesState.java:326) 
     at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState$RenderRunner.run(PersistentFacesState.java:450) 
     at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) 
     at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) 
     at java.lang.Thread.run(Thread.java:724) 
Caused by: java.lang.NullPointerException 
     at java.io.FileInputStream.<init>(FileInputStream.java:134) 
     at java.io.FileReader.<init>(FileReader.java:72) 

답변

0

올바른 길을 가고 있습니다. 분해 된 WAR을 배치하면 쓰기 가능한 디렉토리 구조가 생성되지만 WAR 만 배포하면 그렇게하지 않으므로 해당 WAR 내에 디렉토리를 만들 수 없습니다.

그래서 파일 업로드 디렉토리를 고정 된 위치에 두어야합니다. 참조 : How to specify an absolute path for com.icesoft.faces.uploadDirectory

+0

나는 어제 비슷한 시도를했지만 제대로 작동하지 않았다. 나는 절대적인 길을 주었고 마침내 성공했다. 고마워요 @TheCoolah – user123475

관련 문제