2012-06-26 4 views
1

Glassfish에서 실행되는 Stateless EJB 내에 다음 기능이 있습니다. 파일에 데이터를 쓰는 것뿐입니다. 함수의 첫 번째 부분은 파일이 필요한 곳으로의 경로를 만듭니다. 두 번째 부분은 실제로 파일을 씁니다.Glassfish에 배포 된 Webapp는 파일에 쓸 수 없습니다.

private boolean createFile(String companyName, String fileName, byte[] data) 
{ 
    logger.log(Level.FINEST, "Creating file: {0} for company {1}", new Object[]{fileName, companyName}); 
    File companyFileDir = new File(LOCAL_FILE_DIR, companyName); 
    if(companyFileDir.exists() == false) 
    { 
     boolean createFileDir = companyFileDir.mkdirs(); 
     if(createFileDir == false) 
     { 
      logger.log(Level.WARNING, "Could not create directory to place file in"); 
      return false; 
     } 
    } 
    File newFile = new File(companyFileDir, fileName); 
    try 
    { 
     FileOutputStream fileWriter = new FileOutputStream(newFile); 
     fileWriter.write(data); 
    } 
    catch(IOException e) 
    { 
     logger.log(Level.SEVERE,"Could not write file to disk",e); 
     return false; 
    } 
    logger.log(Level.FINEST,"File successfully written to file"); 
    return true; 
} 

이 코드가 실행 후 얻을 출력은 다음과 같습니다

WARNING: Could not create directory to place file in 

그래서 분명히 글래스 피시는이 디렉토리를 생성하지 못할. 나는 이것이 허가와 관련이 있다고 가정하고있다. 누구든지 나에게 여기에 무엇이 잘못 되었을지에 대한 방향을 제시 할 수 있습니까?

우분투에 글래스 피시 3.12에 12

답변

0

다른 일이 실행하고 있습니다 : 은 1) 사양 비교 : (21.1.2 프로그래밍 제한) 액세스를 시도하는 java.io 패키지를 사용해서는 안 엔터프라이즈 빈 파일 시스템의 디렉토리와 디렉토리를 지정합니다. GF가이를 시행하고 있지는 않지만 확신해야합니다.

2) 코드 자체는 문제가 없습니다. LOCAL_FILE_DIR에 chmod +777을 사용하여 일반적으로 권한과 관련이 있다면 아이디어를 얻으십시오. ...

도움이 되길 바랍니다 ...

관련 문제