1.創建WebService服務
創建Web Service Project , 然後下一步知道結束.
配置對應的web.xml
加debug的原因是測試Web服務是否成功
如果出現頁面則成功
地址爲 http://localhost:8686/項目名/services/
即可
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
配置對應的Services.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <!--服務名稱--> <name>AddNum</name> <!--接口--> <serviceClass>com.sun.vo.IAddNum</serviceClass> <!--實現類--> <implementationClass>com.sun.vo.AddNum</implementationClass> </service> </beans>
2.創建Web項目
添加類庫:選擇項目,右鍵,構建路徑,添加庫,MyEclipse Libraries,選擇XFire 1.2 Core Libraries 與 XFire 1.2 JAXB2 Libraries 與 XFire 1.2 HTTP Client Libraries.
3種方法調用
第一種必須要了解應用的接口,並且在自己項目中創建.
package test;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
/**
* 接口文件
* @author mac
*
*/
public class TestClient {
public static void main(String[] args) {
// 元數據類型
Service model = new ObjectServiceFactory()
.create(ICurrencyConvert.class);
// 代理類
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
ICurrencyConvert client = null;
try {
client = (ICurrencyConvert) factory.create(model,
"http://localhost:8686/webservice/services/currencyConvert");
System.out.println(client.convert(53.43));
} catch (MalformedURLException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
}
}
}
第二種方法需要知道WDSL的路徑 在debug中可以看到
點擊wdsl後 可以複製URL地址欄地址即可
package test2;
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.client.Client;
public class TestClient2 {
public static void main(String[] args) {
try {
Client client=new Client(new URL("http://localhost:8686/webservice/services/currencyConvert?wsdl"));
//第一個參數是方法名,第二個參數爲webservivce方法的參數
Object obj[]=client.invoke("convert", new Object[]{233.3});
System.out.println(obj[0]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
第三種方法
在對應的Web項目中,選擇項目,右鍵,其他,選擇Web Services,選擇Web Service Client,下一步選擇WSDL URL(在裏面填入WSDL地址),下一步完成即可.此功能在Eclipse5.5以上版本不可用.