我的j2ee web应用程序目录中有代码,它删除已部署的War下子目录的内容,然后替换为新目录。
代码在Tomcat中工作正常但在Jboss中失败。这种情况发生在Windows 7中,但不发生在Ubuntu中。在Ubuntu中,我在用户主目录下安装了JBoss。
我正在使用ApacheIO的FileUtils.cleanDirectory方法来清理子目录的内容。
在另一个测试中,我写了一个简单的Test类,其中包含以下几行
File file = new File("D:\\appserver\\jboss-eap-
7.0\\standalone\\deployments\\MyWar.war\\common\\graphpane2");
File jsFile = new File(file, "js");
System.out.println("jsFile.isDirectory() = " + jsFile.isDirectory());
System.out.println("jsFile.isDirectory() = " + jsFile.exists());
System.out.println("file = " + file.exists());
//File file = new File("D:\\VMs\\tex.txt");
try {
FileUtils.cleanDirectory(file);
} catch (IOException e) {
e.printStackTrace();
}
当jboss运行时,尽管目录存在,但jsFile.exists()返回false。但是当jboss关闭时,代码运行正常。
另一点 - 当我通过Windows资源管理器手动访问目录并删除子目录时,我得到一个Windows对话框,说我需要用户的许可。
我通过命令提示符运行Jboss,以管理员身份打开命令提示符。但没有帮助。
不用说,在这方面的任何帮助将受到高度赞赏。我正在使用JBoss 7.0 eap。