- 浏览: 1070434 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
概述
XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。XFixe内建在STAX的基础上之上,STAX是基于流的XML解析引擎,这使得XFire拥有很高的性能。
相对Axis来说,目前它的人气指数相当高,加上其提供了和String集成的支持,在目前的Web Service开源社区拥有众多的追随者,XFire被多个开源项目所使用。XFire为Spring提供了支持,这使得我们可以很容易在Spring中使用XFire构建Web Service应用。本文讲述了如何使用XFire在Spring中开发Web Service的具体过程。
XFire特性
XFire是Web Service框架的后起之秀,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。此外,还提供了各种绑定技术、支持多种传输协议,对Web Service体系中许多新的规范提供了支持。简单来说,它具有以下一些特性:
- 支持重要的Web Service规范,如SOAP、WSDL、WS-I Basic Profile,、WS-Addressing、WS-Security等;
- 高性能的SOAP 栈设计;
- 可插拔的绑定,支持POJO、XMLBeans、JAXB1.1、JAXB2以及Castor;
- 支持JSR 181规范,该规范通过JDK 5.0注解将POJO导出为Web Service;
- 支持多种传输协议:HTTP、JMS、XMPP、In-JVM等,其中In-JVM允许我们在不启动Web应用器的情况下,象一般的程序一样测试Web Service应用;
- 易用的API,XFire API简洁明了,便于使用;
- 支持Spring、Pico、Plexus、Loom等容器;
- 支持JBI(Java Business Integration:Java 业务整合)规范,JBI是JSR 208的实现;
- 能够根据WSDL创建客户端和服务器端的存根代码;
- 率先对JAX-WS提供了支持,JAX-WS是JAX-RPC的替代者。
XFire 体系及重要API
ServiceFactory
ServiceFactory是XFire的核心类,它可以将一个POJO生成为一个Web Service。让我们通过一个最简单的例子了解ServiceFactory的用途,假设我们在一个POJO中定义了一个业务,现在希望将其导出为 Web Service,通过ServiceFactory可以轻而易举地达到目的:
XFire xfire = XFireFactory.newInstance().getXFire();
ServiceFactory factory = new ObjectServiceFactory(xfire.getTransportManager(), null);
Service service = factory.create(YourService.class);
这样我们就为YourService类创建基于SOAP 1.1封装的Web Service。Service的输入输出参数如果为简单类型的对象(由String、int、long等基本类型组成),无须进行额外的映射设置,对于复杂类型的输入输出Service,XFire将会自动尝试将其序列化(通过Aegis绑定)。紧接着,你就可以注册这个Service。
xfire.getServiceRegistry().register(service);
XFire推荐通过一个接口开放服务,此时,你可以指定一个具体的实现类:
service.setProperty(ObjectInvoker.SERVICE_IMPL_CLASS, YourServiceImpl.class);
1.下载XFire所需要的包
2.建立服务端程序
建立一个名字为XFire的Web工程,导入ECLIPSE中自带的XFire的包,在classes的目录下建立META-INF/xfire/services.xml,修改web.xml文件。service.xml文件和web.xml文件的具体配置如下:
services.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>AccountService</name>
<namespace>http://test/AccountService</namespace>
<serviceClass>com.jobcn.AccountService</serviceClass>
<implementationClass>com.jobcn.AccountServiceImpl</implementationClass>
</service>
</beans>
namespace:这个名字可以随意定义,但必须唯一;
serviceClass:表示接口类;
implementationClass:表示实现接口的类;
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>XFireServlet</servlet-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>
<!--这个services以后要和你URL中的对应,注意这点,然后在下文中有介绍-->
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
开发完成后,部署到web服务器上,我用的是TOMCAT;
服务器开启后,输入的格式http://localhost:8080/部署的服务名/services/AccountService?wsdl
该URL组成是基本的服务器访问路径+部署的服务名(我的工程名是XFire)+url-pattern的名字(该名字就是上文提到的services)对应+services.xml文件中的name值(我的是AccountService)+?+wsdl
如果你在浏览器中看到的是一个XML形式的文件,那就表示你的WEBSERVICE服务发布成功了;
然后你将这个内容全部保存成一个以WSDL结尾的文件,保存到你本地的一个文件目录中,例如我保存在D:/accountservice.wsdl(对该文件你还要做相应的处理,因为从浏览器保存下来的文件中包含'-'等多余的字符,自己处理);
服务端服务代码:
接口类:
package com.jobcn;
public interface AccountService {
int getTotal(int a,int b);
}
实现类:
package com.jobcn;
public class AccountServiceImpl implements AccountService {
public int getTotal(int a, int b) {
// TODO Auto-generated method stub
return a+b;
}
}
客户端处理:
在EXCLIPSE中集成XFIRE插件,我们可以通过该插件来解析来自服务器端的wsdl文件,吧他还原成我们可以调用的类(该类只是服务器端的一个stub类)。插件的配置如下:
安装Eclipse XFire 插件 1.Help->Software Updates->Find and Install... 2.选择“Search for new features to install”,并点击Next; 3.选择“New Remote Site...”,创建一个Name为XFire,URL为 http://dist.codehaus.org/xfire/update/的网站; 4.点击Finish安装XFire插件。 图3创建客户端代码存根 指定WSDL文件的位置,存根代码的输出地址及对应的类包,点击Finish。 图4生成的代码使用插件创建客户端代码存根
AccountServiceClient是 AccountServicePortType的工厂类,它提供了若干个获取AccountServicePortType实例的重载方法。 AccountServicePortType对应服务端的窄接口AccountService类。而AccountServiceImpl是服务端的存根代码,在META-INF中还有XFire的服务配置文件。对于客户端来说,一般不需要服务端的代码,所以你可以将AccountServiceImpl和META-INF删除。
,配置得到了服务器端的JAVA的STUB类以后,我们来写客户端的程序:
package com.test;
import test.accountservice.AccountServiceClient;
import test.accountservice.AccountServicePortType;
public class Client {
/**
* @param args
*/
private static String url = "http://127.0.0.1:8080/XFire/services/AccountService";
public static void main(String[] args) {
// TODO Auto-generated method stub
AccountServiceClient asc = new AccountServiceClient();
AccountServicePortType ast = asc.getAccountServiceHttpPort(url);
System.out.println(ast.getTotal(2, 3));//结果打出“5”
}
}
调用成功!
发表评论
-
java spring整合websocket教程
2018-03-30 14:30 687在javaweb项目开发中,我们经常可能需要websocke ... -
myeclipse 项目之间类进行引用
2014-11-19 15:54 965相关解决方案: eclipse的Web项目引用方式:(其实相 ... -
myeclipse8 每次启动内存都不够用的解决方案
2014-11-11 15:34 771最近可能由于公司项目大了,启动MyEclipse后经常提示 ... -
web项目集成log4j
2014-11-06 12:39 723Log4j基本使用方法 Log4j由三个重要的组件构成:日 ... -
使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
2011-10-25 14:09 1528RESTful Web 服务简介 REST 在 2000 年 ... -
确定操作系统位计数(64位还是32位(X86))
2011-09-30 08:36 1248在此部分查找计算机 ... -
解决“无法删除 指定的文件名无效或太长”的问题
2011-09-16 14:07 2524解决“无法删除 指定的文件名无效或太长”的问题 ... -
网站应用通过139邮箱发送短信做到日志提醒功能
2011-09-15 09:36 1824首先在139注册一个邮箱,然后再邮箱设置中设置收到邮件通过短信 ... -
javamail发送邮件遇到的问题
2011-09-15 09:32 1206今天在用myeclipse写mial功能的时候,想调试一下程序 ... -
http协议的学习笔记
2011-03-01 10:56 1688HTTP请求行 格式:请求 ... -
Logback用户手册中文版.pdf
2011-02-14 16:57 2029Logback用户手册中文版.pdf -
JAVA编写的预警系统
2011-02-10 11:00 6340预警系统 <!-- start content --& ... -
Mediawiki 简明架设指南
2011-02-10 10:03 4654在 Debian/Linux 下 1. 安装程序 sh ... -
xsl 常用.jsp
2011-02-10 09:28 1624现在用的都是有规分律数据, 特殊的数据用XSL. DOM4J ... -
SVN 入门指南
2011-01-14 11:17 1003SVN 入门指南 -
FreeMaker中文手册
2011-01-14 11:15 1050FreeMaker中文手册 -
查看某个网段具体哪些IP没有被使用的命令
2010-11-29 09:01 2907通过运行cmd然后在DOS命令下运行下面程序,表示查看192. ... -
xsl 取数据的时候,当用for-each循环取得数据,怎么取第一行的数据
2010-11-08 11:35 2358需求,打印表格的时候,用for-each 来取得数据,当取到第 ... -
项目过程中,对于绝对路径和相对路径的总结
2010-09-11 09:20 12441.基本概念的理解 绝对路径:绝对路径就是你的主页上的文 ... -
mysql经典语句
2010-09-09 18:18 1255show databases;show tables from ...
相关推荐
压缩包中的"xfire开发webservice及jar包"很可能包含了所有必要的库文件,如xfire-core、xfire-aegis等。 2. **创建Web Service**: 使用Xfire,你可以通过编写简单的Java类来定义服务接口和实现。Xfire会自动处理...
通过以上步骤,我们就完成了使用XFire构建一个简单的Web服务的全过程,包括服务端的创建和客户端的消费。这种方式让开发者能够快速地将业务逻辑封装为Web服务,实现不同系统间的互操作性。虽然XFire已经被更现代化的...
这个文件是XFire框架的核心配置之一,它定义了服务的名称、服务类的全限定名等关键信息。在本例中,服务名称被定义为`guolai`,而服务类则指向了之前编写的`Xfire`类。 #### 3. 测试服务 完成以上步骤后,可以通过...
【标题】"用xfire开发webservice实例(原稿)"所涉及的知识点主要集中在使用XFire框架创建和实现Web服务的实践中。XFire是Apache CXF的前身,它是一个轻量级的Java Web服务框架,允许开发者快速地构建和部署SOAP服务。...
【XFire开发Web Service服务和客户端全攻略】 XFire是一个高度活跃且受欢迎的Web Service框架,与Axis2并列为新一代的Web Service实现。它提供了一套简洁的API,支持Web Service的各种标准协议,如JSR181、WSDL2.0...
Java平台提供了多种实现Web服务的方法,其中Xfire是一个流行的框架,它简化了构建和使用Web服务的过程。本文将深入探讨如何使用Xfire来创建一个完整的JAVA Web服务,包括服务端和客户端的实现。 首先,Xfire是一个...
【XFire:让WebService开发变得简单】 XFire是一款强大的Java Web Service框架,它极大地简化了创建和使用Web服务的过程。通过XFire,开发者可以轻松地将普通的Java接口转换为符合WS-I标准的Web服务,无需复杂的...
总的来说,这篇教程应该涵盖了从创建服务到发布的全过程,通过具体的代码示例帮助读者掌握使用XFire和Spring构建Web服务的方法。对于希望了解Web服务开发或者想在Spring应用中添加Web服务功能的开发者来说,这是一个...
xFire是一款已不再维护但曾经流行的Web服务客户端工具,主要用于简化Web服务的开发和测试过程。它作为一个插件集成到IDE(如NetBeans或Eclipse)中,使得开发者可以通过图形用户界面快速地调试和测试Web服务。虽然...
描述中的“jar包齐全可直接导入eclipse进行二次开发”意味着提供的压缩包包含了运行和开发Xfire项目所需的全部依赖库,可以直接导入Eclipse这样的集成开发环境(IDE)中,便于开发者进行快速的二次开发工作。...
这个过程不仅涵盖了从环境搭建到服务开发的全过程,还展示了如何通过MyEclipse和Tomcat进行项目管理和部署测试。对于初学者而言,这是一个很好的起点,帮助理解Web服务的基本概念和开发流程。 然而,随着技术的发展...
本节将指导开发者通过MyEclipse创建一个基础的WebService项目,以“HelloWorldService”为例,展示从项目搭建到服务发布的全过程。首先,在MyEclipse中新建项目,选择Web Service项目类型,设置项目名称、位置和其他...
Java WebService Demo(XFire)是一个基于XFire框架的示例项目,它展示了...这个Demo项目是学习Java Web服务开发的一个宝贵资源,它涵盖了从创建服务到测试的全过程,有助于开发者理解和掌握Web服务的基本概念和实践。
以上就是使用MyEclipse和XFire创建Web服务的全过程。这个示例涵盖了从定义服务接口到实现、发布和调用的整个流程,提供了源码和图解,非常适合初学者理解和实践。通过这种方式,你可以轻松地将Java对象暴露为Web服务...
这些代码可以帮助初学者理解WebService的整个生命周期,从服务创建、部署到客户端调用的全过程。 8. **不使用XFire和CXF**: XFire和CXF都是流行的Java WebService框架,它们提供了更高级的功能,如支持WS-Security...
至此,我们已经完成了使用CXF开发简单“HelloWorld”Web服务的全过程。这个实例展示了CXF如何简化Web服务的开发,使得我们可以快速地创建服务并进行调用。通过理解这个基础实例,开发者可以进一步探索CXF的高级特性...
Spring 是一个全面的后端开发框架,提供了依赖注入、面向切面编程、事务管理等功能,而 XFire 是一个基于Java的Web服务实现库,它简化了创建和消费Web服务的过程。 在"spring3.1+xfire1.26 全注解"这个项目中,...
Xfire是一个轻量级的Java Web服务框架,它简化了服务的创建和部署过程。 首先,确保你的开发环境准备就绪。安装Java Development Kit (JDK),推荐版本为1.6,最好选择全英文路径以避免潜在问题。接着,安装...
综上所述,"WebService服务器端程序"是一个涵盖了CXF与Spring集成的Web服务开发项目,涉及到从接口设计、服务实现、配置管理到客户端调用的全过程。学习和理解这些知识点,对于开发高质量、可维护的Web服务至关重要...