- 浏览: 371058 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
jiangli19192:
...
自己写的一个启动JBoss服务器的bat批处理 -
56553655:
最好这样:java -Xms3700M -Xmx3700M - ...
测试本机JVM支持的最大内存 -
lizhiy05:
学习一哈……
Web Services体系结构及相关概念 -
ghy200692162:
System.out.println("开始注册Js ...
基于OSGi的JSF Web组件开发问题求解 -
xiao888lin:
你的头像看起来很像我们宿舍老四。。。
测试本机JVM支持的最大内存
闲来无事,顺便写个XFire的小例子,也算是打发时间了,o(∩_∩)o...哈哈
定义POM文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.danlley.xfire</groupId> <artifactId>xfire_001</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>xfire_001 Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.codehaus.xfire</groupId> <artifactId>xfire-spring</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.3</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>xfire_001</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project>
构造需用的数据模型:
一:构造Book模型
package org.codehaus.xfire.demo; public class Book { private String title; private String isbn; private String author; public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String toString() { return "[title=" + this.title + "\tisbn=" + this.isbn + "\tauthor=" + this.author + "]"; } }
二:构造Order模型:
package org.codehaus.xfire.demo; public class Order { private String order_id; private String quantity; private String price; public String getOrder_id() { return order_id; } public void setOrder_id(String order_id) { this.order_id = order_id; } public String getQuantity() { return quantity; } public void setQuantity(String quantity) { this.quantity = quantity; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String toString() { return "[price=" + this.price + "\tquantity=" + this.quantity + "\torder_id=" + this.order_id + "]"; } }
三:构造调用返回对象
package org.codehaus.xfire.demo; public class Result { private boolean isSuccess = false; private String message; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean isSuccess) { this.isSuccess = isSuccess; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
定义XFire接口:
package org.codehaus.xfire.demo; import java.util.Map; public interface BookService { public Book[] getBooks(); public Book findBook(String isbn); @SuppressWarnings("unchecked") public Map getBooksMap(); public Book initBooks(Book book); public Result record(Book book, Order order); }
XFire对外接口实现:
package org.codehaus.xfire.demo; import java.util.HashMap; import java.util.Map; public class BookServiceImpl implements BookService { private Book onlyBook; public Book initBooks(Book book) { book.setAuthor("danlley"); return book; } public Result record(Book book, Order order) { System.out.println(order.toString()); System.out.println(book); Result result = new Result(); result.setSuccess(true); return result; } public BookServiceImpl() { onlyBook = new Book(); onlyBook.setAuthor("Dan Diephouse"); onlyBook.setTitle("Using XFire"); onlyBook.setIsbn("0123456789"); } public Book[] getBooks() { return new Book[] { onlyBook }; } public Book findBook(String isbn) { System.out.println(isbn); return onlyBook; } @SuppressWarnings("unchecked") public Map getBooksMap() { Map result = new HashMap(); result.put(onlyBook.getIsbn(), onlyBook); return result; } }
在 src\main\webapp\WEB-INF\classes\META-INF\xfire下定义services.xml,如下:
<beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>BookService</name> <namespace>http://xfire.codehaus.org/BookService</namespace> <serviceClass>org.codehaus.xfire.demo.BookService</serviceClass> <implementationClass> org.codehaus.xfire.demo.BookServiceImpl </implementationClass> </service> </beans>
在src\main\webapp\WEB-INF下定义web.xml,如下:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>XFireServlet</servlet-name> <display-name>XFire Servlet</display-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
开始编写客户端调用:
1). 无参数方法调用
@SuppressWarnings("unchecked") private void testBookService() { String serviceURL = "http://localhost:8080/xfire_001/services/BookService"; Service serviceModel = new ObjectServiceFactory().create( BookService.class, null, "http://xfire.codehaus.org/BookService", null); XFireProxyFactory serviceFactory = new XFireProxyFactory(); try { BookService service = (BookService) serviceFactory.create( serviceModel, serviceURL); Client client = Client.getInstance(service); client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0"); Book[] books = service.getBooks(); Map booksMap = service.getBooksMap(); System.out.print("Received map with " + booksMap.size() + " book(s) \n"); System.out.println("BOOKS:"); for (int i = 0; i < books.length; i++) { System.out.println(books[i].getTitle()); } } catch (MalformedURLException e) { e.printStackTrace(); } }
2). 参数为单个对象的方法调用
private void testBook_002() { String service_url = "http://localhost:8080/xfire_001/services/BookService"; Service serviceModel = new ObjectServiceFactory().create( BookService.class, null, "http://xfire.codehaus.org/BookService", null); XFireProxyFactory serviceFactory = new XFireProxyFactory(); try { BookService service = (BookService) serviceFactory.create( serviceModel, service_url); Client client = Client.getInstance(service); client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0"); Book book = new Book(); book.setAuthor("min.weixm"); Book my = service.initBooks(book); System.out.println("my.getAuthor()" + my.getAuthor()); } catch (Exception e) { e.printStackTrace(); } }
3). 接口参数为多个的情况下,方法调用
private void testBook_001() { String service_url = "http://localhost:8080/xfire_001/services/BookService"; Service serviceModel = new ObjectServiceFactory().create( BookService.class, null, "http://xfire.codehaus.org/BookService", null); XFireProxyFactory serviceFactory = new XFireProxyFactory(); try { BookService service = (BookService) serviceFactory.create( serviceModel, service_url); Client client = Client.getInstance(service); client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0"); Result result = service.record(getBook(), getOrder()); System.out.println("result:" + result.isSuccess()); } catch (Exception e) { e.printStackTrace(); } }
未完待续
发表评论
-
GIT使用批处理完成日常代码管理
2017-03-26 22:01 1274本文默认读者的本机是已经安装好了GIT本地端,因此对于GI ... -
在Maven2插件中用Velocity对配置文件的集中管理
2007-08-06 16:55 2418正如我在“用Velocity进行配置文件信息的集中管理 ”—— ... -
用Velocity进行配置文件信息的集中管理
2007-07-27 16:02 4639Apache从他诞生的那天起 ... -
测试驱动开发与EasyMock的使用
2007-07-17 22:19 1967测试驱动开发并不是什 ... -
在工程POM中内嵌Ant脚本
2007-07-17 22:14 1773由于每篇文章的字数有限制,我没办法在同一个专题中同时将相关的问 ... -
Maven2插件开发详解
2007-07-17 22:11 8988在Maven2强大功能的魅力 ... -
用Emma的Eclipse插件进行代码覆盖率测试
2007-07-17 22:00 6898如上一个关于Cobertura的专题所说,我这里单开一个专题来 ... -
用Cobertura在Maven命令行进行覆盖测试
2007-07-17 21:58 9056Cobertura是一个基于jcovera ... -
ant中使用cobertura分析测试用例的代码覆盖率
2007-07-17 21:48 4621这次还是配置问题,接上上次关于ant脚本模板的详细说明。对于一 ... -
我写的ant编译、打包、测试、测试报告生成和邮件发送模板
2007-07-17 21:40 4971js 代码 <?xml ve ... -
Maven入门--较复杂的实例
2007-07-17 21:19 1651本文将使用一个较复杂的实例,讲述如何定制目录布局(即不使用M ... -
Maven入门--概念与实例
2007-07-17 21:15 1390Maven入门--概念与实例 最近由于工作原因在研 ... -
设计模式总结
2007-07-17 17:14 628设计模式 1) 控制倒置模式: 说到控制倒置模式,就不得不 ... -
Eclipse中常用快捷键总结
2007-07-17 16:57 1181Eclipse中常用快捷键总结: CTRL+SHI ... -
修改eclipse中的默认maven2资源仓库保存地址
2007-07-17 16:56 5852当你在eclipse中集成了maven2后,默认情况下,ecl ... -
用ant进行工程管理
2007-07-17 13:50 21501.典型地,一个ant工程脚本如下: < ... -
利用maven2为工程的jar文件内部打入版本信息
2007-07-17 13:42 17661.修改pom.xml文件,在proj ... -
比ant更强大的工具maven2之自动生成工程
2007-07-17 13:38 2959maven2是在ant的基础上发展起来的,并对ant的功能进行 ... -
OFBIZ开源电子商务学习心得
2007-07-17 13:36 2569看懂在APACHE网站上的英文文档确实是一项不小的挑战,下面说 ... -
开始每个模块功能编写时需要做的事情总结
2007-07-17 13:20 11201.对查询出的展示列表进行排序 2.检查SQL语句,并思 ...
相关推荐
1. 开发包需求:Xfire的使用在APPFUSE项目中已经集成,因此无需单独添加任何包。APPFUSE是一个快速开发框架,它包含了对Web服务支持的各种依赖库。 2. 创建`xfire-servlet.xml`配置文件:在`/WebContent/WEB-INF`...
<param-value>classpath:spring/app.xml,classpath:org/codehaus/xfire/spring/xfire.xml <!--配置xfire ws--> <servlet-name>XFireServlet <servlet-class>org.codehaus.xfire.spring....
"Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...
在这个“xfire 使用外部类、返回collection及输入数组参数示例”中,我们将深入探讨如何利用Xfire来处理复杂的参数类型,包括外部类引用、集合(Collection)返回以及数组作为输入参数。 ### 1. 外部类的使用 在...
XFire还提供了一个强大灵活的接口,用于支持JSR-181规范,可以使用注解的方式来定义Web服务的接口。它的客户端和服务器端代码都可以通过XFire自动生成,大大提升了开发效率。 在XFire的配置中,需要特别注意的是...
【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web服务变得简单。XFire是Apache CXF的前身,它提供了全面的WS-*支持,包括SOAP、WSDL、UDDI、MTOM等标准,...
在 MyEclipse 上使用 XFire 编写 Web Service.rar在 MyEclipse 上使用 XFire 编写 Web Service.rar在 MyEclipse 上使用 XFire 编写 Web Service
这篇博客“Java使用XFire调用WebService接口”显然是讨论如何利用XFire这个开源框架来与Web服务交互。 XFire是Apache CXF项目的前身,它提供了一种简单的方式来创建和消费SOAP Web服务。XFire的强项在于其轻量级和...
2. **使用XFire工具**:XFire提供了命令行工具或者API来解析WSDL文件并生成对应的Java客户端代码。这些代码包含了必要的类和接口,使得开发者可以直接调用Web服务的方法。 3. **生成Java代码**:运行XFire的wsdl2...
《XFire1.2使用详解》 XFire是一款在Java平台上用于构建分布式应用程序的服务框架,它为开发人员提供了丰富的服务发现、服务注册、服务通信等功能。这篇博客将深入探讨XFire1.2的使用,帮助开发者更好地理解和应用...
本文将深入探讨xFire的使用方法、实例演示,以及如何将其与Spring框架集成,帮助开发者更好地理解和应用这个工具。 首先,我们要了解xFire的核心概念。xFire是基于Java的,它主要用来创建和消费SOAP(Simple Object...
6. **测试与调用**:发布服务后,可以使用Xfire的测试工具,或者其他的SOAP客户端工具(如SoapUI)来测试你的Web服务。通过发送SOAP请求,你可以验证服务是否按预期工作。 【示例中的员工管理服务】 在这个...
本文将详细介绍如何使用HttpClient和XFire这两种不同的库来调用Web Service,特别是针对短信接口的调用。 首先,让我们了解Web Service的基本概念。Web Service是一种基于互联网的、平台无关的交互方式,它允许不同...
本文将深入探讨如何使用Eclipse集成开发环境(IDE)结合XFire库来开发Web服务服务器端。XFire是Apache CXF的一部分,是一个轻量级、高性能的Java Web服务框架,支持SOAP、WS-*规范以及RESTful风格的服务。 首先,...
在使用xfire时,需要根据项目需求选择合适的依赖包,并正确配置到项目的类路径中,以确保xfire能够正常工作。同时,随着技术的发展,xfire已经被更现代化的框架如Apache CXF所取代,但理解xfire的原理和工作方式对于...
1. **网络编程**:xfire需要处理大量的网络通信,包括TCP/IP协议的使用、数据包的封装和解封装、延迟优化等。 2. **多线程与并发**:为了处理并发用户,xfire必须有效地管理和调度多个线程,确保系统稳定运行。 3. *...
虽然这里没有具体指出Xfire API 使用的是哪种模型,但RESTful API 因其简洁和高效,通常更受开发者青睐。 为了利用Xfire API,开发者首先需要注册获得API密钥,这个密钥用于识别开发者身份并在请求中验证。然后,...
在本文中,我们将深入探讨XFire的核心特性、使用场景以及如何利用XFire_v1.99进行Web服务开发。 **一、XFire简介** XFire由Codehaus组织开发,它的设计目标是简化Web服务的创建和使用,提供了一种轻量级、高性能的...
在"Demo_Spring_Xfire_Annotation"这个压缩包文件中,很可能包含了示例代码,用于演示如何在Spring和Xfire环境中使用注解来创建、配置和调用Web服务。可能包括以下几个部分: 1. **服务接口**:定义了服务的公共...
虽然DWR主要用于浏览器和服务器之间的直接通信,而XFire是针对Web服务的,但两者可以结合使用。例如,DWR可以用来提供一个友好的用户界面,通过异步调用隐藏在背后的XFire服务,实现复杂的业务逻辑处理。这种方式将...