2013-06-12 106 views
0

我有一個小問題,我試圖在Java Web服務中使用FileInputStream加載屬性文件。Web服務中的Java FileInputStream

的app.config.properties文件中包含的下一行:

fileSales = C:/Users/clens/Documents/sales.xml 

我的Java Web服務類包含下一行:

InputStream is = null; 
    try 
    { 
     is = new FileInputStream("app.config.properties"); 
     objPropiedades.load(is); 
     ruta = objPropiedades.getProperty("fileSales"); 
    } 
    catch(IOException ioe) 
    { 
     ioe.printStackTrace(); 
    } 

控制檯顯示我的下一個異常:

FileNotFoundException: app.config.properties 

日誌文件:

SEVERE: at java.io.FileInputStream.open(Native Method) 
SEVERE: at java.io.FileInputStream.<init>(FileInputStream.java:138) 
SEVERE: at java.io.FileInputStream.<init>(FileInputStream.java:97) 
+0

看起來你已經發布半堆棧跟蹤。什麼是實際的例外? –

+0

@DuncanJones存在app.confi.properties,但Web服務找不到文件 – darthlitox

+0

除非在當前工作目錄中,否則您提供給FileInputStream構造函數的路徑無效。它可能不是。 –

回答

1

當你的屬性文件肯定是在類路徑中,使用此代碼來獲得一個InputStream它:

is = MyService.class.getClassLoader().getResourceAsStream("/app.config.properties"); 

適應的路徑是包含該文件的包(用點取而代之的是斜槓)。

+0

app.config.properties存在於路徑C:\ Users \ clens \ Documents \ NetBeansProjects \ FranquiciaWS中我的java類的路徑是:C:\ Users \ clens \ Documents \ NetBeansProjects \ FranquiciaWS \ src \ java \ Model – darthlitox

+0

所以還要將文件移動到'C:\ Users \ clens \ Documents \ NetBeansProjects \ FranquiciaWS \ src \ java'或'C:\ Users \ clens \ Documents \ NetBeansProjects \ FranquiciaWS \ src \ resources' – gma

0

看起來像你的app.config.properties文件不在你的工作位置。

兩個選項

  1. 放置app.config.properties文件放在WEB-INF/classes目錄/文件夾中的Web服務應用程序的 。
  2. 請將app.config.properties文件與 全限定路徑名稱一起使用。假設這是一個標準的Web服務應用程序。

    E:\ Tomcat的7.0 \的webapps \ WebServiceProject \ WEB-INF \類\ app.config.properties