1
在Glassfish中运行的无状态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
所以很明显的Glassfish不能创建这个目录。我假设这与权限有关。任何人都可以给我一个方向去看看这里可能是错的吗?
我在Ubuntu上Glassfish的3.12运行此12个