webservice(xfire)

1.下载需要的xfire包
下载地址:http://xfire.codehaus.org/Download,下载xfire-distribution-1.2.6.zip文件,并解压。
新建web项目,取名TestXFire,将解压目录下的xfire-all-1.2.6.jar和lib目录下的所有包导入到项目中。
2.创建类
使用接口的设计是一个好的实践,所以先创建接口:ITestService,代码如下:

package com.gdie.xfire.example;
//该接口提供一个方法,用于计算
public interface ITestService {
 public int add(int p1, int p2);
}

 创建接口实现类

package com.gdie.xfire.example;
public class TestService implements ITestService {
 public int add(int p1, int p2) {
  // TODO Auto-generated method stub
  return p1 + p2;
 }
}

 3.创建META-INF文件夹
简便起见,将WebRoot下的META-INF文件夹复制到项目的src下,这样的话会在部署发布目录下web-inf下的classes下自动建立META-INF,而同时WebRoot下也有一个META-INF文件夹,这两个容易混淆,实际webservice下真正起作用的是web-inf下的classes下的web-inf下的META-INF,所以,关键是在项目的src下面有META-INF这个文件夹,并定义里面的内容,与WebRoot下META-INF无关。
然后在src下的META-INF建立xfire子文件夹,里面建立一名叫services.xml配置文件,配置如下:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://xfire.codehaus.org/config/1.0"> 
<service> 
   <name>TestService</name> 
   <namespace>http://com/gdie/xfire/example/ITestService</namespace> 
   <serviceClass>com.gdie.xfire.example.ITestService</serviceClass> 
   <implementationClass>com.gdie.xfire.example.TestService</implementationClass> 
</service> 
</beans> 

 注意:包文件路径com.gdie.xfire.example.ITestService等需要正确对应。
关键是在src下面要有META-INF文件夹和里面的文件,否则会报找不到services.xml错误而加载不了项目。

4.修改web.xml
配置文件关键是定义XFireServlet,对应代码如下:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <welcome-file-list> 
       <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <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-mapping> 
       <servlet-name>XFireServlet</servlet-name> 
       <url-pattern>/services/*</url-pattern> 
    </servlet-mapping> 
</web-app>

 至此,服务器端部署完毕。
将项目加载进tomcat并启动tomcat,无异常。

打开ie,输入
http://localhost:8080/TestXFire/services/

 

5.客户端测试
先将刚才建立的TestXFire整个项目打包成jar包(myeclipse的export),名为TestXFire.jar,再新建一个web项目TestXFireClient,导入xfire的包,和刚才的TestXFire工程的打包TestXFire.jar
在src下新建一个测试类,代码如下:

package com.gdie.xfire.test;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import com.gdie.xfire.example.ITestService;;
public class MyClient {
 public static void main(String[] args) {
  try{
   Service serviceModel = new ObjectServiceFactory().create(
     ITestService.class,"TestService","http://com/gdie/xfire/example/ITestService",null);
   
   ITestService service = (ITestService) new XFireProxyFactory().create(
     serviceModel,"http://localhost:8080/TestXFile/services/TestService");
   
   System.out.println("返回值是:"+service.add(5, 8));
  }catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }
 }
}

 运行,输出结果是:
返回值是:13
则说明客户端成功。

至此,webservice部署测试例子成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值