package com.wxgk.xfirespring;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
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;
public class TestClient {
public static void main(String[] args) {
// demo1();
// try {
// demo2();
// } catch (MalformedURLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// demo3();
// try {
// demo4();
// } catch (MalformedURLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// demo5();
// try {
// demo6();
// } catch (MalformedURLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
demo7();
// demo8();
}
public static void demo1() {
Service serviceModel = new ObjectServiceFactory()
.create(IBookService.class);
String url = "http://localhost:8888/xfilespring/service/BookService";
IBookService service = null;
try {
service = (IBookService) new XFireProxyFactory().create(
serviceModel, url);
Book b = service.getBook();
System.out.println(b.getName() + ">>>>>>>>Client: " + b.getId());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void demo2() throws MalformedURLException, Exception {
Client client = new Client(new URL(
"http://localhost:8888/xfilespring/service/BookService?wsdl"));
Object[] results = client.invoke("getBook", new Object[] {});
System.out.println(results[0]);
}
// 查询
public static void demo3() {
Service serviceModel = new ObjectServiceFactory()
.create(IBookService.class);
String url = "http://localhost:8888/xfilespring/service/BookService";
IBookService service = null;
try {
service = (IBookService) new XFireProxyFactory().create(
serviceModel, url);
List<Book> blists = service.findAllBooks();
for (Book b : blists) {
System.out
.println(b.getName() + ">>>>>>>>Client: " + b.getId());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void demo4() throws MalformedURLException, Exception {
Client client = new Client(new URL(
"http://localhost:8888/xfilespring/service/BookService?wsdl"));
Object[] results = client.invoke("findAllBooks", new Object[] {});
System.out.println("实现类:" + results[0].getClass().getName()
+ " ********** ");
System.out.println(" :" + results[0].getClass());
// System.out.print("\n"+"subject实现的接口是:");
// Class<?>[] interfaces=results[0].getClass().getInterfaces();
// System.out.println(interfaces.getClass().getName());
}
// employee
public static void demo5() {
Service serviceModel = new ObjectServiceFactory()
.create(IEmployeeService.class);
String url = "http://localhost:8888/xfilespring/service/EmployeeService";
IEmployeeService service = null;
try {
service = (IEmployeeService) new XFireProxyFactory().create(
serviceModel, url);
List<Employee> elists = service.findById(2);
for (Employee e : elists) {
System.out.println(e.getEmpAddress() + ">>>>>>>>Client: "
+ e.getId() + " ********** " + e.getEmpName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void demo6() throws MalformedURLException, Exception {
Client client = new Client(
new URL(
"http://localhost:8888/xfilespring/service/EmployeeService?wsdl"));
Object[] results = client.invoke("findById", new Object[] { 1 });
System.out.println("实现类:" + results[0].getClass().getName()
+ " ********** ");
System.out.println(" :" + results[0].getClass());
}
// myservice
public static void demo7() {
Service serviceModel = new ObjectServiceFactory()
.create(IMyService.class);
String url = "http://localhost:8888/xfilespring/service/MyService";
IMyService service = null;
try {
service = (IMyService) new XFireProxyFactory().create(serviceModel,
url);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int result = service.add(1, 4);
System.out.println("result: " + result);
}
public static void demo8() {
Client client=null;
try {
client = new Client(new URL(
"http://localhost:8888/xfilespring/service/MyService?wsdl"));
Object[] results = client.invoke("add", new Object[] { 1, 3 });
System.out.println("结果:" + results[0] + " ********** ");
System.out.println(" :" + results[0].getClass());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
xfire与spring集成案例
5星 · 超过95%的资源 需积分: 0 54 浏览量
更新于2014-03-26
1
收藏 4.48MB ZIP 举报
在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。XFire是早期的一个流行的Java Web服务框架,它简化了创建、部署和消费Web服务的过程。而Spring框架则是Java企业级应用开发的基石,以其依赖注入和面向切面编程为核心,提供了强大的容器和服务。本案例将详细介绍如何将XFire与Spring集成,构建一个高效的Web服务系统。
我们需要理解XFire的基本概念。XFire是基于Axis2和JAX-WS规范的轻量级Web服务框架,它提供了一种简单的方式来创建、发布和调用Web服务。XFire支持多种协议,如SOAP、RESTful等,且与Spring的集成非常紧密,可以通过Spring的配置文件来管理Web服务的生命周期。
Spring框架的加入,使得我们能够更灵活地管理Web服务的bean。通过Spring的IoC(Inversion of Control)容器,我们可以控制XFire服务的实例化、初始化和销毁,以及服务之间的依赖关系。Spring还提供了一个方便的Web服务客户端生成器,可以自动创建用于调用远程服务的代理类。
集成XFire和Spring的步骤大致如下:
1. **引入依赖**:在项目中添加XFire和Spring的相关库。这通常通过Maven或Gradle的依赖管理来完成。
2. **配置Spring**:创建一个Spring配置文件,如`xfilespring.xml`,在这个文件中,定义Web服务的bean,包括服务接口、实现类和服务发布配置。
3. **定义服务接口和实现**:编写Web服务的接口,以及其实现类。接口定义了对外提供的方法,实现类则包含了具体的服务逻辑。
4. **使用Spring注解或XML配置服务**:在实现类上使用`@WebService`注解,或者在Spring配置文件中定义`<xfire:service>`元素,指定服务的端点地址、namespace等信息。
5. **启动Web服务**:通过Spring的ApplicationContext加载配置,Spring会自动创建并启动XFire服务。
6. **测试服务**:可以使用Spring生成的客户端代理或者标准的SOAP工具(如cURL、SoapUI)来测试发布的Web服务。
7. **帮助文档**:在案例中的`help.txt`文件,可能包含了集成过程中参考的教程链接或其他相关信息,这对于初学者来说是非常宝贵的资源,可以深入理解每个步骤的细节。
通过这样的集成,我们不仅可以利用Spring的强大功能管理Web服务,还可以享受到XFire带来的快速开发体验。这种结合使开发者能够更专注于业务逻辑,而非底层的通信细节,提高了开发效率和代码的可维护性。同时,Spring的灵活性也允许我们在任何时候对服务进行扩展和优化,以满足不断变化的需求。
"xfire与spring集成案例"是一个实用的教程,旨在帮助开发者理解和实践如何在Spring环境中利用XFire构建Web服务。这个案例提供了完整的流程,从配置到测试,对于初学者来说是一个很好的学习起点,同时也为有经验的开发者提供了一个参考模板。