2013-03-01 108 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