和大家分享一下我做的demo案例,xfire和spring2.5集成。
需要的jar文件
xfire-all-1.2.6.jar
jdom-1.0.jar
wsdl4j-1.6.1.jar
commons-codec-1.3.jar
commons-httpclient-3.0.jar
stax-api-1.0.1.jar
spring.jar
commons-logging-1.0.4.jar
spring-webmvc.jar
XmlSchema-1.1.jar
服务器端 接口类:
package iteye.kaobian;
public interface IHello {
public String sayHello(String name);
}
接口实现类:
package iteye.kaobian;
public class SayHello implements IHello {
public String sayHello(String name) {
System.out.println("hello == " + name);
return "hello " + name;
}
}
spring文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 引入XFire预配置信息 -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<bean name="hello" class="iteye.kaobian.SayHello"/>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/dataService.ws">
<ref bean="dataService" />
</entry>
</map>
</property>
</bean>
<!-- 使用XFire导出器 -->
<bean id="baseWebService"
class="org.codehaus.xfire.spring.remoting.XFireExporter"
lazy-init="false" abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory" />
<property name="xfire" ref="xfire" />
</bean>
<bean id="dataService" parent="baseWebService" >
<property name="serviceBean" ref="hello"/>
<property name="serviceClass" value="iteye.kaobian.IHello" />
</bean>
</beans>
web.xml文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>
org.codehaus.xfire.spring.XFireSpringServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>/WebService/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
客户端调用WebService有两种方式,静态和动态,静态又分了很多种,我只讲一个和spring集成的:
代码:
package test;
import iteye.kaobian.IHello;
import org.codehaus.xfire.client.Client;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class TestClient {
IHello helloWorld = null;
public static void main(String[] args) throws Exception {
TestClient t = new TestClient();
t.method2();
}
public void method1() throws Exception {
String wsdl = "http://localhost:8080/Xfire/WebService/IHello?wsdl"; // 对应的WSDL文件
Resource resource = new ClassPathResource(wsdl);
Client client = new Client(resource.getInputStream(), null); // 根据WSDL创建客户实例
Object[] objArray = new Object[1];
objArray[0] = " iteye.kaobian ";
Object[] results = client.invoke("sayHello", objArray);
System.out.println(" result: " + results[0]);
}
public void method2() throws Exception {
ApplicationContext ctx = new ClassPathXmlApplicationContext("client.xml");
IHello a = (IHello) ctx.getBean("testWebService");
System.out.println(a.sayHello("fiugang"));
}
}
客户端spring文件:
<?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="testWebService"
class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
<property name="serviceClass">
<value>com.bonc.IHello</value>
</property>
<property name="wsdlDocumentUrl">
<value>
http://localhost:8080/hesper/WebService/IHello?wsdl
</value>
</property>
</bean>
</beans>
动态调用的客户端:
package test;
import java.net.URL;
import org.codehaus.xfire.client.Client;
public class DongTai {
public static void main(String[] args) throws Exception {
Client client = new Client(new URL("http://localhost:8080/Xfire/WebService/IHello?wsdl"));
Object[] results = client.invoke("sayHello", new Object[] {"==========="});
System.out.println((String) results[0]);
}
}
分享到:
相关推荐
本篇将详细讲解如何利用Spring 3.0与Xfire 1.2.6进行集成,以开发高效的Web服务。 首先,让我们了解Spring 3.0。Spring 3.0是Spring框架的一个重大更新,引入了许多新特性和改进,如支持JSR-303 Bean Validation,...
在IT行业中,集成框架是开发复杂应用程序的关键,Spring和XFire就是两个重要的工具。Spring作为一个强大的Java企业级应用开发框架,提供了丰富的功能,包括依赖注入、面向切面编程(AOP)以及各种服务管理。而XFire...
《xfire-spring:xfire1.2.6与spring3.2.5构建Web服务实战解析》 在IT行业中,Web服务作为一种重要的组件间通信方式,被广泛应用于分布式系统和企业级应用中。xfire-spring项目是将XFire(一款基于Java的Web服务...
8. **依赖管理**: 提供的`xfire1.2.6_all`压缩包可能包含了所有必要的依赖文件,这方便开发者快速集成到项目中,避免了手动解决依赖问题的麻烦。 9. **文档和社区支持**: 虽然XFire 1.2.6相对较旧,但在其活跃时期...
在本压缩包“XFire1.2.6”中,包含的是XFire 1.2.6版本所需的全部jar文件,这些文件是开发者进行基于webservice开发的重要组成部分。 一、XFire简介 XFire是一个轻量级的Web服务实现,它通过简化API和快速的性能,...
webservice中用到的jar,xfire-spring-1.2.6.jar,xfire-spring-1.2.6.jar,xfire-spring-1.2.6.jar,xfire-spring-1.2.6.jar
- **易于集成**:XFire可以无缝集成到Spring框架中,使得服务管理和依赖注入更加方便。 在实践中,开发者可以利用XFire 1.2.6提供的资源,学习如何定义服务接口、编写服务实现、配置服务端点、创建客户端代理,以及...
在这个“webservice xfire spring2.0完整实例”中,我们将会探讨如何结合XFire 1.2.6和Spring 2.0来创建和消费Web服务。首先,我们需要理解Spring 2.0中的Web服务抽象层,即Spring Web Services模块。这个模块提供了...
JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...
【Xfire Spring Hibernate 发布WebService】是将Xfire、Spring和Hibernate这三种技术结合,用于在MyEclipse环境中创建和发布Web服务。Xfire是一个基于Java的SOAP和REST Web服务框架,Spring则提供了依赖注入和AOP...
### 使用XFire与Spring开发WebService的关键知识点 #### 实现功能与特点 - **基于J2EE平台的WebService服务**:这种服务充分利用了Java 2 Platform, Enterprise Edition (J2EE)的强大特性,如事务管理、安全性等,...
### xFire与Spring集成知识点详解 #### 一、概述 在现代软件开发中,整合不同的技术框架以构建高效、可扩展的应用程序变得越来越普遍。其中,**xFire**作为一款轻量级的SOAP容器,提供了丰富的功能来支持Web服务的...
activation.jar commons-logging.jar jdom-1.0.jar spring-mock.jar spring.jar stax-api-1.0.1.jar stax-utils-20040917.jar ...xfire-spring-1.2.6.jar xfire-xmlbeans-1.2.6.jar xstream-1.3.1.jar
XFire1.2版本,其中修改了META-INF/services 目录下的javax.xml.ws.spi.Provider文件,解决因为jdk1.6和XFire的架包冲突问题
同时,Xfire还与其他流行的Java框架如Spring、Hibernate等有良好的集成,进一步增强了其在企业级应用中的实用性。 然而,随着技术的发展,Xfire的后续版本并未继续更新,目前已被Apache CXF所替代。Apache CXF继承...
xfire-all-1.2.6.jar 开发webservice xfire 所需jar包
Spring+xFire 实现 WebService 是一种在 Java 开发中创建和使用 Web 服务的方式,它结合了 Spring 框架的灵活性和 xFire(现在称为 Apache CXF)的 Web 服务功能。以下是对这个技术栈的详细说明: 1. **环境配置**...
`xfire1.2.6`这个文件名可能是XFire的一个版本号,表示使用的是1.2.6版本的框架,这个版本可能包含了上述提及的一些核心功能和依赖。不过,随着技术的发展,XFire已经被Apache CXF所取代,后者提供了更多的功能和更...
### Spring与XFire集成解决方案详解 #### 一、Spring与XFire概述 Spring框架作为Java平台上最流行的轻量级框架之一,提供了强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
为了解决spring整合cxf,xfire遇到的jar包冲突问题,将XmlSchema.1.1.1.jar和xfire-all1.2.6.jar修改后进行了重新编译打包