无法访问我的war文件

时间:2014-01-19 11:39:05

标签: java java-ee jboss7.x ear

我有一个应用程序,它是一个包含war和一些jar文件的ear文件。我想使用java代码访问我的war的web-inf文件夹。我尝试了很多,但找不到任何可以帮助我访问我的war文件的内容。

我根据jboss论坛在文件夹结构中提取了我的ear文件,但仍无法访问web-inf文件夹。

我尝试了这段代码,但它返回的是jboss bin文件夹而不是部署文件夹

org.jboss.vfs.VirtualFile vFile = org.jboss.vfs.VFS.getChild("WEB-INF/config/custom.xml");
    org.jboss.vfs.VirtualFile vFile1 = org.jboss.vfs.VFS.getRootVirtualFile();

我也尝试过使用JNDI,但无法解决主要问题。

InitialContext ic;
try {
    ic = new InitialContext();
    String moduleName = (String) ic.lookup("java:module/MyModule");
    String appName = (String) ic.lookup("java:app/devcenter");
    System.out.println("app name is : " + appName);
} catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

任何人都可以帮助我吗?如何访问我的WEB-INF文件夹,以便我可以在运行时更改我的xml内容?

2 个答案:

答案 0 :(得分:0)

简单的答案是你不能。 EAR是一个存档,这意味着您必须知道路径,解压缩存档(或至少存档中的文件),更改它并再次压缩存档。这可能需要或触发(如果自动发生则无法回忆)重新部署。

如果您有用于配置的文件,我建议您将其存储在您添加到服务器配置中的paths的已知路径中。

答案 1 :(得分:0)

你无法以这种方式访问​​它。你可以做的是在你的构建路径中包含它。然后,您可以像访问任何资源文件一样访问它。因此,将它们复制到源文件夹中的文件夹。例如 - src\main\resources\config\custom.xml。您的java类将位于src\main\java\内,您的资源文件将在那里。