XFire WebService使用实例

几年前搞过,当时只是匆匆的用。相隔几年之后再用时有些模糊了,参考了别人的例子实现了,特此总结下。

一、要使用先下载:http://xfire.codehaus.org/Download

二、先说服务端:

1、新建JavaWeb项目,将jar包拷进webroot/lib下面;(xfire-all-1.2.6.jar和xfire-distribution-1.2.6\xfire-1.2.6\lib下面的所以jar都拷)

2、在WebRoot/META-INF下面新建文件夹xfire;

3、在xfire文件夹下面新建services.xml文件

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- <beans>
    <service xmlns="http://xfire.codehaus.org/config/1.0">
      <name>Hello</name>
      <namespace>http://com.qh.helloWorld/Hello</namespace>
      <serviceClass>com.qh.helloWorld.Hello</serviceClass>
    </service>
</beans> -->
<beans xmlns="http://xfire.codehaus.org/config/1.0">
  <service>
    <name>KingTeamService</name>
    <namespace>http://com.yao.xfire.service/KingTeamService</namespace>
    <serviceClass>com.yao.xfire.service.MathService</serviceClass>
    <implementationClass>com.yao.xfire.service.MathServiceImpl</implementationClass>
  </service>
</beans>

4、在web.xml文件里面添加service拦截

内容如下:

<servlet>
		<servlet-name>xfireServlet</servlet-name>
		<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>xfireServlet</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>

5、新建KingTeamService.java 接口

内容如下:

package com.yao.xfire.service;

public interface KingTeamService {
	public int add(int a,int b);
}

6、新建KingTeamService.java接口的实现类

内容如下:

package com.yao.xfire.service;

import com.sun.org.apache.commons.logging.Log;
import com.sun.org.apache.commons.logging.LogFactory;

public class MathServiceImpl implements KingTeamService{

	private final Log log = LogFactory.getLog(MathServiceImpl.class);
	@Override
    public int add(int a, int b) {
        log.info("invoke method add.");
        return a + b;
    }

}

三、调用服务的客户端:

1、MathServiceClient.java

package com.yao.xfire.client;

import java.net.MalformedURLException;

import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;

import com.yao.xfire.service.KingTeamService;

public class MathServiceClient {
    private static KingTeamService mathService;

    private MathServiceClient(){}

    public static KingTeamService getMathService(String serviceUrl) throws MalformedURLException{
        if(mathService == null){
            //创建服务
            Service srvcModel = new ObjectServiceFactory().create(KingTeamService.class);
            //创建XFire对象
            XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
            //调用Web服务
            mathService = (KingTeamService) factory.create(srvcModel, serviceUrl);

            //设置客户端调用的属性
            Client client = Client.getInstance(mathService);
            client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "300");
            client.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE, "true");
            client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "true");
            //如果需要设置代理
            //client.setProperty(CommonsHttpMessageSender.HTTP_PROXY_HOST, "10.3.1.6" );
            //client.setProperty(CommonsHttpMessageSender.HTTP_PROXY_PORT, "8080");
        }

        return mathService;
    }

    public static void main(String[] args) throws MalformedURLException{
        KingTeamService service = MathServiceClient.getMathService("http://localhost:80/xfireD/services/MathService");
        int result = service.add(1, 14);
        System.out.println("get the result: " + result);
    }
}

然后将项目放进web服务器里面,运行。然后在浏览器里面输入访问地址进行测试:http://localhost/xfireD/services/KingTeamService?wsdl

运行客户端即可得到计算的结果。

例子虽然简单,但却将使用的过程说的清楚明白。以后可以参考着实现了,哈哈。

时间: 2024-11-05 10:09:27

XFire WebService使用实例的相关文章

webservice cxf 实例

转自百度空间:http://hi.baidu.com/cpuhandou/item/b8b439860afb99c9ee083d65 CXF webservice 开发入门 1.       新建一个JavaWebProject,命名为cxfDemo选择[next],为project添加userLib库.        2.       打开新建的project,在src下新建包com.handou.cxf.test.在包中新建inteface名称为HelloWorld代码如下:@WebServ

php webservice 接口 实例 机票航班时刻表

<?php header('Content-Type: text/html; charset=UTF-8'); $client = new SoapClient('http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl'); $fromcity=!empty($_POST['fromcity']) ? trim($_POST['fromcity']) : '长沙'; $tocity=!empty($_POST['

主题:Java WebService 简单实例

链接地址:主题:Java WebService 简单实例    http://www.iteye.com/topic/1135747 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要的重复操作. 一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService].   2.创建[Class]类,命名为[ServiceHello],位于[com.

VS2008中C#开发webservice简单实例

1.创建工程 文件-> 新建->网站 如下图. 工程建好后,会自动添加如下代码: 1 using System; 2 using System.Linq; 3 using System.Web; 4 using System.Web.Services; 5 using System.Web.Services.Protocols; 6 using System.Xml.Linq; 7 8 [WebService(Namespace = "http://tempuri.org/"

WebService入门实例教程

什么是WebService 通过使用WebService,您的应用程序可以向全世界发布信息,或提供某项功能,它是基于Web的服务,通过Web进行发布.查找和使用. WebService脚本平台需支持XML+HTTP. HTTP协议是最常用的因特网协议. XML提供了一种可用于不同的平台和编程语言之间的语言. 为什么要使用WebService 最重要的事情是协同工作. 1.跨平台调用(WebService不局限于操作系统,你可以在Windows上调用linux上的WebService服务,反之亦然

XFire WebService demo

XFire创建WebService实例应用 XFire使得在JavaEE应用中发布Web服务变得轻而易举.和其他Web服务引擎相比,  XFire的配置非常简单,可以非常容易地和Spring集成.  下载地址:http://xfire.codehaus.org/Download.  一. 使用XFire发布WebService    1. 创建service接口 Java代码   package com.test.service; import com.test.service.bean.Use

Java调用WebService 接口 实例

这里给大家介绍一下,Java调用webservice的一个实例的过程. 本项目不能运行,因为接口地址不可用. 这里只是给大家介绍一个过程,同时留作自己的笔记.如果要学习,可以参照别人的实例.比较好. ①选择项目根目录的src ,右键,new --> webservice client 然后输入地址: http://172.18.100.52:456/hello?wsdl 必须要加wsdl结尾,这样才是一个webservice的接口. finlish.这时候刷新项目.可以看到项目下/src/com

Java WebService 简单实例[转载]

[注意,本文转载自  http://hyan.iteye.com/    ] 一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService]. 2.创建[Class]类,命名为[ServiceHello],位于[com.hyan.service]包下. 3.编写供客户端调用的方法,即编译方法代码. 4.进行编译 说明:编译失败的话,请将该项目引用的jdk设置

eclipse+webservice开发实例

1.參考文献: 1.利用Java编写简单的WebService实例  http://nopainnogain.iteye.com/blog/791525 2.Axis2与Eclipse整合开发Web Service  http://tech.ddvip.com/2009-05/1242968642120461.html 3.http://blog.csdn.net/lightao220/article/details/3489015 4.http://clq9761.iteye.com/blog