1、給web項目添加web service支持,web.xml文件會自動修改。
<SERVLET-NAME>XFireServlet</SERVLET-NAME><SERVLET-CLASS>org.codehaus.xfire.transport.http.XFireConfigurableServlet</SERVLET-CLASS><LOAD-ON-STARTUP>0</LOAD-ON-STARTUP><SERVLET-MAPPING><SERVLET-NAME>XFireServlet</SERVLET-NAME><URL-PATTERN>/services/*</URL-PATTERN></SERVLET-MAPPING>2、 創建對外提供的服務接口和實現類
接口:HelloService
package com.xaccp.service;public interface HelloService { public String sayHello(String name);}實現類:HelloServiceImpl
package com.xaccp.service;public class HelloServiceImpl implements HelloService { public String sayHello(String name) { System.out.println("來自客戶端的用戶:" + name); return "服務器說你好:" + name; }}3、 發布服務
上面發布后 services.xml 就發生下面的變化
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>Hello</name> <serviceClass>com.xaccp.service.HelloService</serviceClass> <implementationClass> com.xaccp.service.HelloServiceImpl </implementationClass> <style>wrapped</style> <use>literal</use> <scope>application</scope> </service></beans>到此服務器端就ok了,測試一下是否ok,發布服務到Tomcat;啟動Tomcat,訪問:http://localhost:8080/helloService/services,出現如下信息說明發布成功
4、 客戶端
創建web項目(需要添加xFire包)或webService項目,需要服務器提供接口:
測試類:
public static void main(String[] args) {// 創建服務的元數據Service serviceModel = new ObjectServiceFactory().create(HelloService.class);// 創建服務的代理XFire xfire = XFireFactory.newInstance().getXFire();XFireProxyFactory factory = new XFireProxyFactory(xfire);// 指定服務的地址 應用程序地址+“/services/”+服務名稱String serviceUrl = "http://192.168.0.98:8080/helloService/services/Hello";HelloService client = null;try {// 創建服務的對象client = (HelloService) factory.create(serviceModel, serviceUrl);// 調用服務String res = client.sayHello("哈哈");System.out.println(res);} catch (MalformedURLException e) {System.out.println(" " + e.getMessage());}}本文由北大青鳥論壇投稿,原文地址:http://www.beiniao.net/thread-3174-1-1.html
新聞熱點
疑難解答