一个 XFire 初级入门例子

  在写简单例子之前,我们要做好如下准备:

到网上下载xfire-1.2.6.zip包. 然后解压之后,xfire-1.2.6\lib  目录下的所有.jar 文件和 xfire-1.2.6目录下的xfire-all-1.2.6.jar文件,都拷贝到项目中的WEB-INF目录中的lib目录中,

 

之后,我们开始创建项目XFire_Projects,我们就可以开始在项目中建立包, 在包中创建一个IHelloWorld 接口,

随便写两个简单的方法,

 

在写一个实现类,这个实现类不需要implements IHelloWorld接口,

只需,把IHelloWorld的方法,重写一遍就行了.

 

接口代码如下:

package pack.java.demo;

/**
 * 接口;
 * @author ZhouHaiTao.
 *
 */
public interface IHelloWorld {
	
	public String hello(String name);
	
	public int add(int i,int j);
}

 

实现类代码如下:

package pack.java.demo;

/***
 * 该实现类可以不需要implements IHello接口;
 * @author ZhouHaiTao
 *
 */
public class Hello {
	public String hello(String name){
		return name+",Hello World";
	}
	
	public int add(int i,int j){
		return i+j;
	}
}

 

 

之后,编写完接口和实现类之后,我们在SRC目录下,建立META-INF 文件, META-INF文件夹中在建立,xfire文件夹,之后,在建立services.xml文件,

 

services.xml文件内容如下:

<!--Start SNIPPET:services-->
<beans>
	<service xmlns="http://xfire.codehaus.org/config/1.0">
		<!-- 服务名称 -->
		<name>HelloWorld_FristXFire</name>
		<!-- 实现类的命名空间 -->
		<namespace>http://pack.java.demo/Hello</namespace>
		<!-- 实现类所指的包和类 -->
		<serviceClass>pack.java.demo.Hello</serviceClass>
		<!-- 对应接口的实现 -->
		<implementationClass>pack.java.demo.Hello</implementationClass>
		<scope>request</scope>
	</service>
</beans>

 

 

web.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>WebServiceDemo</display-name>

	<servlet>
		<servlet-name>Xfile</servlet-name>
		<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
		<load-on-startup>0</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>Xfile</servlet-name>
		<url-pattern>/servlet/XFireServlet/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>Xfile</servlet-name>
		<url-pattern>/service/*</url-pattern>
	</servlet-mapping>
	
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

 

然后我们启动部署项目,启动tomcat服务, 在浏览器中输入:

http://localhost:9999/XFire_Projects/services/

我们在浏览器中将会看到.以下内容代表部署成功.

Available Services:

  • HelloWorld_FristXFire [wsdl]
  • <!--Just filling space according to http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807--><!--Just filling space according to http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807-->
    Generated by XFire ( http://xfire.codehaus.org )

这个HelloWorld_FristXFire就是我们在services.xml中配置的服务名称,

 

最后,我们可以新建client 项目了,.同样的把所有的.jar拷贝到客户端项目中WEB-INF/lib中.

 

建立项目名称:XFire_Projects_Client,

接下来在src创建pack.java.demo.client.

之后,在包中创建一个与服务端对应的一个IHelloWorld接口,注意要与服务器接口里面的方法一摸一样,.

 

然后,在随便写一个测试类,

代码如下:

package pack.java.demo.client;


import java.net.MalformedURLException;

import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

/***
 * XFire 客户端测试;
 * @author ZhouHaiTao.
 *
 */
public class XFireClientDemo {

	/**
	 * 测试主方法;
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String url="http://localhost:9999/XFire_Projects/services/HelloWorld_FristXFire";
		Service serviceModel=new ObjectServiceFactory().create(IHelloWorld.class);
		try {
			IHelloWorld service=(IHelloWorld)new XFireProxyFactory().create(serviceModel, url);
			int resultInt=service.add(5, 5);
			System.out.println(resultInt+"\n");
			String resultString=service.hello("彭小婷");
			System.out.println(resultString);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

 

点击运行,

控制台将会显示:

 

10

彭小婷,Hello World

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值