首页 > 代码库 > xfire构建webservice项目步骤以及使用

xfire构建webservice项目步骤以及使用

简单搭建xfire开源软件的webservice开发及其步骤: 

1、创建好一个web工程,引入xfire下的jar包,注意lib下的和xfire-all.jar 
2、定义接口; 
Java代码  收藏代码
  1. package com.iteye.webservice;  
  2. public interface IHelloService {  
  3.     public String sayHelleWorld(String inputStr);     
  4. }  

3、接口实现; 
Java代码  收藏代码
  1. package com.iteye.webservice;  
  2. public class HelloImpl implements IHelloService {  
  3.     @Override  
  4.     public String sayHelleWorld(String name) {  
  5.          System.out.println("hello worl! this is first webservice!!!");  
  6.         return "Hello "+name;  
  7.     }  
  8. }  

4、web.xml配置访问公开接口信息; 
  以下配置都是固定的配置信息: 
Xml代码  收藏代码
  1. <servlet>  
  2.    <servlet-name>XFireServlet</servlet-name>  
  3.    <servlet-class>  
  4.            org.codehaus.xfire.transport.http.XFireConfigurableServlet  
  5.        </servlet-class>  
  6.  </servlet>  
  7.  <servlet-mapping>  
  8.    <servlet-name>XFireServlet</servlet-name>  
  9.    <url-pattern>/servlet/XFireServlet/*</url-pattern>  
  10.  </servlet-mapping>  
  11.  <servlet-mapping>  
  12.    <servlet-name>XFireServlet</servlet-name>  
  13.    <url-pattern>/services/*</url-pattern>  
  14.  </servlet-mapping>  

5、新建META-INF,新建xfire,新建services.xml,并配置接口信息; 
  结构:/src/META-INF/xfire/services.xml 
  servics.xml内容: 
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <beans xmlns="http://xfire.codehaus.org/config/1.0">  
  3.   <service>  
  4.       <name>HelloService</name>  
  5.       <namespace>http://com/iteye/webservice/HelloService</namespace>  
  6.       <serviceClass>com.iteye.webservice.IHelloService</serviceClass>  
  7.       <implementationClass>com.iteye.webservice.HelloImpl</implementationClass>  
  8.   </service>  
  9.     
  10. </beans>  

6、部署访问,生成 ?wsdl文件。 
  加载到tomcat中,启动浏览器地址栏输入:   
     http://localhost:8080/webservicedemo/services 
  返回?wsdl文件。 
7、模拟远程调用服务器端 
创建一个客户端项目(Java工程或者web工程),引入jar包,创建客户端代码: 
1、client客户端 
Java代码  收藏代码
  1.  @Test  
  2.       public void testSayHelle() {  
  3. try {  
  4.     Client client = new Client(new URL(                          
  5.             "http://localhost:8090/webservicedemo/services/HelloService?wsdl"));  
  6.     Object[] objects = client.invoke("sayHelleWorld",  
  7.             new Object[] { "tom" });  
  8.     System.out.println(objects[0]);  
  9. catch (MalformedURLException e) {  
  10.     e.printStackTrace();  
  11. catch (Exception e) {  
  12.     e.printStackTrace();  
  13. }  

2、xfire代理客户端 
Java代码  收藏代码
  1.  @Test  
  2. public void testFactoryClient() throws MalformedURLException {  
  3. // 创建服务工厂  
  4. ObjectServiceFactory serviceFactory = new ObjectServiceFactory();  
  5. // 通过服务工厂创建服务  
  6. Service service = serviceFactory.create(IHelloService.class);  
  7. // 创建代理工厂  
  8. XFireProxyFactory fireProxyFactory = new XFireProxyFactory();  
  9. // 通过代理工厂创建代理对象  
  10. IHelloService hs = (IHelloService) ireProxyFactory.create(service,             
  11.                   "http://localhost:8080/webservicedemo/services/HelloService");  
  12. // 调用代理对象方法(即远程调用)  
  13. hs.sayHelleWorld("tom");