2011-03-15 30 views
0

我有一個本地JBoss 6設置與JBoss工具和Eclipse做爆炸 Web應用程序的熱部署。我曾經使用帶有顯式類路徑的主類和J​​AR/WAR文件通過shell啓動webapp。我的資源加載器曾經完美地工作,但是現在,因爲webapp在JBoss中處於具有「未知」類路徑的分解目錄結構中,因此未找到像「/db/jpql/whatever.jpql」這樣的文本文件資源(返回null ,導致NPE)。如何從爆炸Web應用程序的根目錄讀取資源?

的問題是:

你如何從根加載資源(或外部的WEB-INF目錄中)的分解web應用(在JBoss中)的?我檢查了類路徑,它只是C:\ dev \ jboss \ bin \ run.jar ...

+1

它應該像以前一樣工作,如果您使用的是「正確」的方法。向我們展示您用來加載資源的代碼。 – skaffman 2011-03-15 15:21:58

+0

你說得對。編碼錯誤。 – Kawu 2011-03-15 19:15:19

+0

然後,您應該將其作爲回答發佈並將其標記爲已接受。否則,請刪除問題。 – skaffman 2011-03-15 19:16:07

回答

0

我忘記了用斜槓來加我的資源字符串。無法可靠地工作。

我用了

public static String readResource(String sResource) 
{ 
    String sContent = ""; 

    InputStream is = null; 
    BufferedReader br = null; 

    try 
    { 
     is = TextFileLoader.class.getResourceAsStream(sResource); 

     // resource not found, check web environment 
     if (is == null) 
     { 
      is = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(sResource); 
     } 

     is.available(); 

     br = new BufferedReader(new InputStreamReader(is)); 

     ... 
    } 

    ... 
} 

得到webapp的資源,如果當前的階級類加載器返回null。

相關問題