2012-01-24 45 views
0

我想用xfire將現有的Java函數公開爲Web服務。FileNotFoundException使用xFire時

我在web.xml中添加了這個:

<servlet> 
     <display-name>XFireServlet</display-name> 
     <servlet-name>XFireServlet</servlet-name> 
     <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet 
     </servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>XFireServlet</servlet-name> 
     <url-pattern>/servlet/XFireServlet/*</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
     <servlet-name>XFireServlet</servlet-name> 
     <url-pattern>/services/*</url-pattern> 
    </servlet-mapping> 

,這是我的services.xml:

<beans xmlns="http://xfire.codehaus.org/config/1.0"> 

    <service> 
    <name>machine</name> 
    <namespace>http://xfire.codehaus.org/machine</namespace> 
    <serviceClass>com.amazon.lm.util.LMUtils</serviceClass> 
    </service> 

</beans> 

我已經放在META-INF/xfire目錄下的文件services.xml,當我嘗試打我的本地主機的wsdl文件,我得到FileNotFoundExceptionMETA-INF/xfire/services.xml file不存在。

任何人都可以幫助我嗎?

+3

XFire已經過時,並已被CXF取代(見http://xfire.codehaus.org/)。如果你使用CXF,你會得到更好的支持,很少有人再使用XFire。 – skaffman

回答

0

文檔說該文件應放置在META-INF/xfire的「classpath」中。這意味着你想把它放在/ yourcontext/WEB-INF/classes/META-INF/xfire中,而我猜你可能把它放在/ yourcontext/META-INF/xfire中?

0

試試這個...

<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

相關問題