首先,使用到的jar先導入項目中,xbean-spring-2.8.jar, wsdl4j-1.6.1.jar, commons-httpclient-3.0.jar, commons-codec-1.3.jar, xfire-all-1.2.6.jar, xmlschema-1.1.jar, sp...
首先,使用到的jar先導入項目中,
xbean-spring-2.8.jar, wsdl4j-1.6.1.jar, commons-httpclient-3.0.jar, commons-codec-1.3.jar, xfire-all-1.2.6.jar, xmlschema-1.1.jar, spring-1.2.6.jar,
commons-logging-1.0.4.jar, jdom-1.0.jar, 這9個包是xfire實現伺服器端的webservice主要的包,包含訪問webservice和生成webservice
1. 訪問webservice文件:
public static String visit(String method, Object[] params) throws Exception{ Client client = new Client(new URL(URL_SPAC)); client.setTimeout(5000); //訪問超過5秒鐘超時 //設置訪問的方法和參數 Object[] results = client.invoke(method, params); return results[0].toString(); }
很簡單,就這麼幾句代碼就搞定。 URL_space為http://xxx:8080/WebServices/xxx.asmx?WSDL,就是webservice的訪問地址,但一定要到 ?wsdl
暫時沒有解決調用端使用數組參數。
2. 生成webservice
在src下新建 META-INF/xfire/services.xml 文件, 文件中這樣寫
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>webservice名稱</name> <serviceClass>java介面類路徑</serviceClass> <implementationClass>java介面實現類路徑</implementationClass> <style>wrapped</style> <use>literal</use> <scope>application</scope> </service> </bean>
在web.xml中配置啟動載入xfire的servlet類即可,代碼如下:
<servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
這樣,一個訪問名稱為 webservice名稱 的webservice就啟動起來了