`

xFire+Spring练手

阅读更多

 

1、下载xFire:

xfire-distribution-1.2.6.zip

包含了api 手册、例子、相关jar等。

下载地址 http://xfire.codehaus.org/Download

 

2、新建一个web项目,然后创建2个java文件:

注意,必须使用接口。

 

HelloImpl.java:

package test;

import java.util.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.codehaus.xfire.transport.http.XFireServletController;
import org.json.JSONException;
import org.json.JSONStringer;

public class HelloImpl implements IHello {

	public String hello() {
		return "hello";
	}

	public String helloTo(String name) {
		return " hello " + name + "!";
	}

	private void example() {
		// 使用session
		HttpServletRequest request = XFireServletController.getRequest();
		HttpSession session = request.getSession();
	}

	public String getJsonData(String pageIndex, String pageSize) {
		String rtnValue = "";

		rtnValue = "";
		for (int i = 0; i < Integer.parseInt(pageSize); i++) {
			rtnValue = rtnValue + "{'lastname': 'last" + pageIndex + "-" + i
					+ "', 'firstname': 'first" + pageIndex + "-" + i + "' },";
		}
		rtnValue = rtnValue + "{'lastname': 'last', 'firstname': 'last' }";

		rtnValue = "{'context':["
				+ rtnValue
				+ "],'pager':[{'totalRecord':'100','totalpage':'10','pageIndex':'"
				+ pageIndex + "','pageSize':'10'}]}";

		return rtnValue;
	}
}

 

IHello.java:

package test;

public interface IHello {
	public String hello();

	public String helloTo(String name);

	public String getJsonData(String pageIndex, String pageSize);
}	
 

 

3、解压缩xfire-distribution-1.2.6.zip,把xfire-1.2.6\modules\*.jar 、xfire-1.2.6\lib\*.jar拷贝到项目的lib文件夹下;

 

4、创建配置文件:

新建WEB-INF/applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">






<beans>
	<bean id="testBean" class="test.HelloImpl"></bean>
</beans>

 xfire使用spring1.2.6,注意此处xml定义。

 

修改WEB-INF/web.xml,增加如下内容:

<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
		WEB-INF/applicationContext*.xml,
		classpath:org/codehaus/xfire/spring/xfire.xml





		</param-value>
	</context-param>


	<!-- 启动时加载SpringContextServlet -->
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>

	<listener>
		<listener-class>
			org.springframework.web.util.IntrospectorCleanupListener
		</listener-class>
	</listener>


	<!-- XFire 配置 -->
	<servlet>
		<servlet-name>xfire</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>xfire</servlet-name>
		<url-pattern>*.ws</url-pattern>
	</servlet-mapping>

 注意红色部分,必须填写。

 

新建WEB-INF/xfire-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
	<bean
		class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="urlMap">
			<map>
				<entry key="/testService.ws">
					<ref bean="test" />
				</entry>
			</map>
		</property>
	</bean>

	<bean id="test" parent="webService"
		class="org.codehaus.xfire.spring.remoting.XFireExporter">
		<property name="serviceBean">
			<ref bean="testBean" />
		</property>
		<property name="serviceClass">
			<value>test.IHello</value>
		</property>
	</bean>

	<!-- webService base -->
	<bean id="webService"
		class="org.codehaus.xfire.spring.remoting.XFireExporter"
		abstract="true">
		<property name="serviceFactory">
			<ref bean="xfire.serviceFactory" />
		</property>
		<property name="xfire">
			<ref bean="xfire" />
		</property>
	</bean>
</beans>
 

 

 

5、

启动服务,访问:http://localhost:8080/xxx/testService.ws?wsdl

可以看到wsdl页面。

 

6、客户端调用:

package client;

import java.net.MalformedURLException;
import java.net.URL;

import org.codehaus.xfire.client.Client;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Test().say();
	}

	public void say() {
		Client client;
		try {
			client = new Client(new URL(
					"http://localhost:8080/xFire/testService.ws?wsdl"));
			// 第一个参数是方法名,后面的参数是需要传入的参数
			Object[] results = client.invoke("helloTo",
					new Object[] { "xxxxxx" });
			System.out.println((String) results[0]);
			
			results = client.invoke("getJsonData",
					new Object[] { "2","3" });
			System.out.println((String) results[0]);
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}
 

 

总结:

实用xfire必须基于接口编成。

xfire使用spring1.2.6,注意bean配置文件声明,没有特殊要求最好不要升级spring版本。

 

 

问题:

1、如何使用spring2.0整合xfire;

2、xfire客户端依赖那些jar;

3、如何用ant、xfire插件声称客户端

 

 

 

 

 

 

分享到:
评论

相关推荐

    xfire+spring+安全认证

    "xfire+spring+安全认证"的主题聚焦于如何利用XFire和Spring框架来实现安全的Web服务。XFire是一个用于创建、消费和部署SOAP Web服务的Java库,而Spring框架则是一个广泛使用的全功能应用开发框架,提供了包括安全性...

    xfire+spring开发webservice

    在提供的文档《xfire+spring2_5开发webservice接口的两种方式.mht》中,详细讲解了这两种方法的实现步骤、示例代码和注意事项。读者可以通过阅读该文档,了解如何在Spring 2.5版本下结合XFire创建Web服务。 另一份...

    xfire+spring+webservice+client

    标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...

    xfire +spring jar

    描述中提到的“本来想把xfire+spring例子也一起传上来,太大不让传”,意味着这个压缩包可能包含了示例代码或者项目实例,用于展示如何在实际应用中整合XFire和Spring。由于文件大小限制未能一同上传,我们只能从...

    XFire+Spring webwervice

    【XFire+Spring Web Service】是一个结合了XFire和Spring框架的解决方案,用于构建高效、易用的Web服务。XFire作为一个现代化的Web服务框架,它与Axis2齐名,但因其简洁的API和对Web服务标准的支持,如JSR181、WSDL...

    xfire+spring+hibernate的一种整合方式

    本案例中的"xfire+spring+hibernate"是一种早期的整合方式,它将Web服务(通过XFire实现)、Spring框架的依赖注入与管理以及Hibernate的持久层处理结合在一起。以下是对这种整合方式的详细解释。 1. **XFire**:...

    使用XFire+Spring构建Web Service

    总的来说,XFire+Spring的组合为Java开发者提供了一个强大且灵活的Web服务解决方案,结合MooTools等前端技术,可以构建出高性能、易维护的分布式系统。在实际开发中,理解并熟练掌握这些工具的使用,将有助于提升...

    Xfire+spring+hiebrnate webService

    【标题】:“Xfire+Spring+Hibernate WebService” 在IT领域,Web服务是一种软件系统,设计用于通过网络(主要是互联网)进行通信。本项目“Xfire+Spring+Hibernate WebService”是一个采用特定技术栈构建的Web服务...

    xfire+spring webservice

    标题 "xfire+spring webservice" 指的是在Java开发环境中,利用XFire和Spring框架来构建Web服务。这是一个常见的技术组合,用于快速、高效地创建和消费Web服务。让我们深入了解一下这两个组件以及它们如何协同工作。...

    xfire+spring+webservice

    《XFire、Spring与Web服务集成的深度解析》 在当今的软件开发中,Web服务已经成为企业级应用间通信的重要手段。XFire、Spring和Web服务的结合为开发者提供了强大的工具,使得构建、部署和管理Web服务变得更为简便。...

    xfire+Spring整合

    当我们将XFire与Spring进行整合时,我们可以利用Spring的强大功能来管理Web服务的生命周期,并且更容易地集成到现有的Spring应用中。 XFire与Spring的整合主要涉及以下几个关键知识点: 1. **Spring的Bean管理**:...

    xfire+spring+maven构建webservice服务器和客户端

    标题中的“xfire+spring+maven构建webservice服务器和客户端”揭示了本教程将围绕三个主要技术进行讨论:XFire、Spring和Maven。这三者都是Java开发中不可或缺的工具,尤其在构建Web服务方面。 XFire是早期的一个...

    使用XFire+Spring构建Web Service步骤以及源代码.rar

    XFire是一个高性能、易于使用的Java Web服务框架,而Spring则是广泛采用的轻量级应用框架,它提供了丰富的功能来支持各种应用程序的开发,包括Web服务。本教程将详细介绍如何结合XFire和Spring来构建Web服务,并提供...

    xfire+spring+webservice例子

    【标题】"xfire+spring+webservice例子"是一个典型的示例项目,它演示了如何在Java环境中结合XFire和Spring框架来创建和消费Web服务。这个项目旨在帮助开发者理解和实践基于Spring的Web服务实现,同时也展示了XFire...

    使用xfire+spring构建webservice

    标题“使用xfire+spring构建webservice”指出的是一个关于如何利用XFire和Spring框架创建Web服务的教程。XFire是早先的一个用于构建Web服务的开源Java库,它简化了SOAP(简单对象访问协议)服务的开发。而Spring框架...

    xFire+spring webService 示例

    在这个"xFire+Spring WebService示例"中,我们将深入探讨这两个技术的结合以及如何通过它们实现Web服务。 首先,让我们了解xFire。xFire(现为Apache CXF)是一个用于构建和部署Web服务的Java库。它支持多种Web服务...

Global site tag (gtag.js) - Google Analytics