2013-06-01 2 views
1

동적 보고서를 사용하여 보고서 파일을 만들려고했지만 서버에 파일을 만들지 못하는 것 같습니다. 로컬에서 실행되는 동일한 메소드를 사용하면 파일을 생성하지만 서버에서 실행하면 파일이 생성되지 않습니다. Eclipse에서 Tomcat 7을 실행 중입니다. 파일은 FileOutputStream을 사용하여 생성됩니다. 여기 reportsPath이 활성화되지 내가 아는FileOutputStream이 서버의 디스크에 기록되지 않습니까? 파일은 어디로 이동합니까?

private FileOutputStream createFile(String extension) throws FileNotFoundException { 
    FileOutputStream file; 
    String filePath = reportsPath + "generated_report." + extension; 
    filePath = "generated_report." + extension; 
    System.out.println("FILENAME IS: " + filePath); 

    file = new FileOutputStream(new File(filePath)); 

    return file; 
} 

:

StyleBuilder plainStyle = stl.style().setFontName("FreeUniversal"); 
StyleBuilder boldStyle = stl.style(plainStyle).bold(); 
StyleBuilder italicStyle = stl.style(plainStyle).italic(); 
StyleBuilder boldItalicStyle = stl.style(plainStyle).boldItalic(); 

try { 
    report().title(
     Templates.createTitleComponent("Fonts"), 
     cmp.text("FreeUniversal font - plain").setStyle(plainStyle), 
     cmp.text("FreeUniversal font - bold").setStyle(boldStyle), 
     cmp.text("FreeUniversal font - italic").setStyle(italicStyle), 
     cmp.text("FreeUniversal font - bolditalic").setStyle(boldItalicStyle)) 
     .toDocx(createFile("docx")) 
//  .show() 
     ; 
} catch (DRException e) { 
    e.printStackTrace(); 
} 

아와를 CreateFile (...) 방법 :

는 자, 여기가 아닌 톰캣에 로컬로 작동하는 방법이다 .

예외가 없습니다. 그건 그렇고, 다른 파일도이 서버에서 생성되지 않을 수도 있습니다. 왜냐하면 저는 서블릿을 통해 파일을 업로드하고 사용되기 때문에 경로에 아무 것도 나타나지 않지만 ' 저장되는 것처럼 보이지만 어쨌든 업로드 된 파일을 보관할 필요가 없으므로 걱정거리는 아니지만 지금은 이가 있습니까? 보고서를 찾을 수 있어야 파일을 만들 수 있습니다.

그리고 파일을 찾을 수 없다고 생각합니다. 서버를 실행중인 모든 컴퓨터에서 실제로 모든 곳에서 검색을 실행했지만 그 이름으로 만들어진 파일이 없었습니다. ..

그래서 어떤 아이디어? 그것은 Tomcat 구성 문제 또는 뭔가가 있어야합니까?

아이디어가 있으십니까? 감사합니다

+1

질문을'filePath'에 출력하십시오. 'IOException'가 throw되지 않으면 파일이 생성됩니다. 어쩌면 경로를 전달해야합니다. 왜냐하면 Tomcat 작업 또는 tmp 디렉토리 내에 생성 될 수 있기 때문에 경로를 전달해야합니다. 또한'reportPath'는 2 인자'File (pathName, fileName)'생성자를 사용하지 않는 한'/'로 끝나야한다는 것을 명심하십시오. –

+1

그것은 심지어 당신의 Eclipse 디렉토리 또는 프로젝트 디렉토리 (CWD - 현재 작업 디렉토리 - 이클립스가 Tomcat을 실행한다는 것)에있을 수도 있습니다. –

+0

감사합니다. 당신은 옳았습니다, 디스크에서 검색을 실행 했음에도 불구하고 나는 어떻게 든 그것을 놓쳤습니다. 이제 그것을 발견 했으므로 Tomcat 작업 디렉토리를 변경할 수있는 방법을 찾았습니다. –

답변

0

출력은 생성자에서 제공 한 파일에 기록되었습니다. 상대 파일 이름 인 경우 코드를 실행할 때 현재 작업 디렉토리와 관련됩니다.

그렇지 않으면 IOException이 발생하고 코드가 전혀 실행되지 않았습니다.

관련 문제