XFireZhuweiTestxfire-all-1.1.jar 與 lib 目錄所有檔案WebContent/WEB-INF/libXFireConfigurableServlet 處理 /services/* 與 /servlet/XFireServlet/*
<servlet>
<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>/services/*</url-pattern>
</servlet-mapping>
com.zhuweisky.xfireDemo.MathService
public class MathService {
public int Add(int a, int b) { return a + b; }
}
WebContent/META-INF/xfire/services.xml
<beans xmlns="https://xfire.codehaus.org/config/1.0">
<service>
<name>MathService</name>
<namespace>https://com.zhuweisky.xfireDemo/MathService</namespace>
<serviceClass>com.zhuweisky.xfireDemo.MathService</serviceClass>
</service>
</beans>
XFire 透過 Spring 解析此檔發布服務。
?wsdl 拋 FileNotFoundException: META-INF/xfire/services.xml。WebContent/WEB-INF 建立 classes 資料夾,將整個 META-INF 移動至 classes 下。最終結構:

https://localhost:8080/XFireZhuweiTest/services/MathService?wsdl 獲取 WSDLstring url = "https://localhost:8080/XFireZhuweiTest/services/MathService";
object[] args = {1, 2};
object result = ESFramework.WebService.WebServiceHelper.InvokeWebService(url, "Add", args);
MessageBox.Show(result.ToString()); // 顯示 3
XFire 開發 Web Service 極簡單,但 services.xml 載入路徑問題(需置於 WEB-INF/classes/META-INF/xfire/)官方文件鮮少提及,耗時近一天排查。記錄此處助後人避坑。