Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法访问我的war文件_Java_Jakarta Ee_Jboss7.x_Ear - Fatal编程技术网

Java 无法访问我的war文件

Java 无法访问我的war文件,java,jakarta-ee,jboss7.x,ear,Java,Jakarta Ee,Jboss7.x,Ear,我有一个应用程序,它是一个ear文件,其中包含war和一些jar文件。我想使用java代码访问war的web inf文件夹。我尝试了很多,但没有找到任何可以帮助我访问war文件的东西 我根据jboss论坛提取了文件夹结构中的ear文件,但仍然无法访问web inf文件夹 我尝试了这段代码,但它返回的是jboss bin文件夹,而不是部署文件夹 org.jboss.vfs.VirtualFile vFile = org.jboss.vfs.VFS.getChild("WEB-INF/config/

我有一个应用程序,它是一个ear文件,其中包含war和一些jar文件。我想使用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内容?

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


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

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