2013-03-01 104 views
1

我試圖在Eclipse中調試設置了一個Web服務。找不到META-INF目錄中的XML文件

它有這樣的目錄結構:

Root /
  + src
  + META-INF
  + WEB-INF

裏面的META-INF目錄中,有一個文件夾\xfire\services.xml

當我啓動服務器,我有以下錯誤:

java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist

當我運行procmon.exeSysinternals的,我看到,我有一個「路徑找不到」那些下面的路徑錯誤:

  • C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\META-INF\xfire\services.xml
  • C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\MyWebService\WEB-INF\META-INF\xfire\services.xml
  • C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\MyWebService\WEB-INF\classes\META-INF\xfire\services.xml

雖然文件存儲在:

  • C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\MyWebService\META-INF\xfire\services.xml

我在做什麼錯?

回答

0

它看起來像getRessources()用於讀取您的XML,所以文件需要在類路徑中。

只需將META-INF移動或複製到其中一個項目源目錄(我猜src或src/main ...)。

+0

我找到了解決方法來解決我的問題,所以我無法驗證你的答案是否正確。我會保持開放狀態,直到有同樣問題的人可以確認它的工作。謝謝 – madgangmixers 2013-03-30 18:41:42

2

我有一個問題,META-INF文件夾必須保留在WEB-INF中......這樣,您可以保留常規文件夾。 試試這個...

<servlet> 
    <servlet-name>XFire</servlet-name> 
    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> 
    <init-param> 
     <param-name>config</param-name> 
     <param-value>../META-INF/xfire/services.xml</param-value> 
    </init-param> 
</servlet> 

迫使你需要的文件的位置。在這種情況下,我用「.. \」上升一級。這是在web.xml