2014-01-19 80 views
1

我有一個應用程序,它是一個包含war和一些jar文件的ear文件。我想用java代碼訪問我的戰爭的web-inf文件夾。我嘗試了很多,但找不到任何可以幫助我訪問我的戰爭文件的東西。無法訪問我的war文件

我根據jboss論壇提取了我的耳朵文件的文件夾結構,但仍然無法訪問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內容?

回答

0

簡單的答案是你不能。 EAR是一個檔案庫,意味着您必須知道路徑,解壓縮檔案(或至少檔案中的檔案),然後更改檔案並再次壓縮檔案。這可能需要或觸發(無法回想起它是否會自動發生)重新部署。

如果您有用於配置的文件,我建議您將其存儲在已添加到服務器配置中paths的已知路徑中。

0

你不能以這種方式訪問​​它。你可以做的是在你的構建路徑中包含它。然後你可以像訪問任何資源文件一樣訪問它。因此,將它們複製到源文件夾內的文件夾中。例如 - src\main\resources\config\custom.xml。你的java類將在src\main\java\之內,你的資源文件將在那裏。