xFire客户端
xfire使用
wsdlDocumentURL 代表wsdl所对应的URL1、通过URLConnection创建连接,然后invoke相应接口优点:调用简单缺点:传递封装对象比较麻烦[java]view plaincopyprint?1.// wsdlDocumentURL必须是全地址(包含?wsdl)2.URL url = new URL(wsdlDocumentURL);3.URLConnection connection = url.openConnection();4.Client client = new Client(connection.getInputStream(), null);5.// invoke接口方法6.// 接口返回Object数组7.Object[] result = client.invoke("methodName", new Object[]{});[java]view plaincopyprint?.codehaus.xfire.service.Service serviceModel = new ObjectServiceFactory().create(接口.class);2.XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());3.IEmailBindHandlerService handler = (IEmailBindHandlerService) factory.create(serviceModel, wsdlURL);2、XFireProxyFactory创建客户端实例客户端需要明确知道接口详细信息[java]view plaincopyprint?.codehaus.xfire.service.Service serviceModel = new ObjectServiceFactory().create(IEmailBindHandlerService.class);2.XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());3.接口 handler = (IEmailBindHandlerService) factory.create(serviceModel, wsdl地址);3、通过eclipse自动生成webservice client4、通过org.codehaus.xfire.spring.remoting.XFireClientFactoryBean构建客户端实例[java]view plaincopyprint?1.<bean id="baseService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean" abstract="true">2. <property name="serviceFactory" ref="xfire.serviceFactory" />3. <!-- <property name="lookupServiceOnStartup" value="false" /> -->4. <property name="properties">5. <props>6. <!-- 等待HttpConnectionManager从连接池中返回空闲连接的超时时间 -->7. <prop key="http.connection.manager.timeout">1000</prop>8. <!-- 等待建立连接的超时时间 -->9. <prop key="http.connection.timeout">3000</prop>10. <!-- 等待服务器返回数据超时时间 -->11. <prop key="http.timeout">10000</prop>12. <!-- 连接到单个服务器的连接数上限 -->13. <prop key="max.connections.per.host">10</prop>14. <!-- 连接到所有服务器的连接个数上限 -->15. <prop key="max.total.connections">80</prop>16. </props>17. </property>18. </bean>19.20. <bean id="接口实例" parent="baseService">21. <property name="serviceClass" value="接口地址" />22. <property name="wsdlDocumentUrl" value="${xfireServerURL}/webservice名称?wsdl" />23. </bean>使用该配置方法的话,可以通过注入实现调用,同时可以减少手动创建URLConnection之后忘记关闭连接的尴尬只是如果使用该方法的时候,需要在web.xml中添加如下配置[java]view plaincopyprint?1.<context-param>2. <param-name>contextConfigLocation</param-name>3. <param-value>classpath:org/codehaus/xfire/spring/xfire.xml</param-value>4.</context-param>。
webservice四种发布方式及客户端调用
WebService 四种发布方式总结Author:yczhang1.CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。
该问题在此处做个记录,以后使用cxf与was的时候需要注意!!!使用cxf+spring搭建WebService:第一步,添加jar包。
此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包:而泰康的was环境则需要如下jar包:明显的多了很多,原因应该是服务器jar包池的不同。
根据错误提示缺什么补什么就可以了,注意jar包勿重复。
第二步,配置web.xml文件,如下(重要的地方已标记):<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><!-- Character Encoding filter --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFil ter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>CXFServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-c lass><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/webservice/*</url-pattern></servlet-mapping>上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;第三步,编写接口类与实现类,注意注解接口类@WebServicepublic interface SendService {public boolean sendOA(@WebParam(name="param")String param);public boolean sendOrg(OrgEntity org);}实现类@WebService(endpointInterface="com.service.SendService",serviceName=" sendService")public class SendServiceImpl implements SendService{public boolean sendOA(String param) {System.out.println("-------sendOA---------param:"+param);if(param.equals("zhoujian")){return true;}return false;}public boolean sendOrg(OrgEntity org) {System.out.println("-------sendOrg--begin-------");return true;}}第四步,Spring配置文件“jaxws:client”该标签可以不必写,访问时可以手动拼接该url 第五步,发布,直接部署到服务器,访问:2.Xfire方式据说xfire方式已经很老了,但个人感觉,xfire方式很简单且容易配置,不知为啥过时了,也没感觉cxf、axis2哪里先进,我当时卡在cxf与was搞不定时想尝试xfire方式被周经理给拒绝了。
XFire开发webservice服务和客户端全攻略
使用XFire开发webservice服务和客户端全攻略收藏XFire 是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service 各项标准协议,帮助你方便快速地开发Web Service应用。
相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。
并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。
XFire 与Axis2相比具有如下特征:l 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security 等;l 使用Stax解释XML,性能有了质的提高。
XFire采用Woodstox 作Stax实现;l 容易上手,可以方便快速地从pojo发布服务;l 支持Spring、Pico、Plexus、Loom等容器;l 灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor;l 高性能的SOAP 栈设计;l 支持Spring、Pico、Plexus、Loom等容器。
XFire 与Axis1性能的比较如下:l XFire 比Axis1.3快2-6倍;l XFire 的响应时间是Axis1.3的1/2到1/5。
XFire 在WebService框架中开始较晚,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。
此外,还提供了各种绑定技术、支持多种传输协议,对WebService体系中许多新的规范提供了支持。
下面让我们来看一个XFire于Spring集成的helloWorld的简单例子。
一.实现的功能和特点本例具有如下功能和特点:1)基于J2EE平台的Web Service服务;2)开发方便,配置简单;3)与spring无缝集成。
如何在MyEclipse和Eclipse下安装XFire插件CXF插件 WebService
如何在MyEclipse和Eclipse下安装XFire插件CXF插件 WebService首先,现在都用CFX了(CFX部分源于XFire)吧,所以建议大家使用CXF,本文后面讲XFire安装……CXF的安装参见:Apache CXF: An Open-Source Services Framework /源文件的下载在/download.html博客更新时最新为2.42 一共两个文件,要下载的是其中的二进制下载包,也就是Binary distribution,下载File下的zip(for win)或者tar.gz(for linux)我用的是winXP下载完成后按照如下配置:将你的Binary distribution加压至任意文件夹(将被设为%CXF_HOME%)我的电脑->属性->高级->环境变量创建一个CXF_HOME变量,值为CXF框架所在根目录,修改一下CLASSPATH=%CXF_HOME%/lib;PATH=%CXF_HOME%/bin; 以方便在DOS窗口下直接运行java2ws,wsdl2java等可执行文件。
在%JAVA_HOME%/jre/lib目录下创建一下endorsed文件夹,将jaxb-api.jar,jaxws.jar拷贝进去。
(建议在%CXF_HOME%的文件夹中搜索endorsed,就包括这两个文件,当然,你也可以直接将这个路径包含在%CXF_HOME%\lib\endorsed包含在CLASSPATH中尝试一下,我没有试过)配置好了后,你在DOS窗口下输入java2ws,看看配置是否有效,有效会提示Missing argument: classname。
这样就OK了。
MyEclipse安装XFire要进行基于XFire的开发,需要在MyEclipse或者Eclipse里安装XFire,但是网上基本没有安装插件的说明,在这里做一个介绍:在Eclipse里添加XFire,请遵照XFire官网说明/Eclipse+Plugin进行安装在MyEclipse (9.0)骤如下:进入help->MyEclipse Configer Center ,点选Software选项卡,左侧有个Browse Software,点击导航右侧的 Add Site,弹出对话框,填入名称“XFire”(任填)和站点"/xfire/update/",点击确定,稍等片刻,你会发现在Browse Software下多了XFire的两个选项(只是找到,还没安装),OK,分别双击这两个选项,这连个添加会排程到等待更新的列表中,也就是页面右下角的Software Updates Aviables里面(其实有一个确实已经在MyEclipse里面安装了,所以应该只有一个更新),在单选框中打对勾,然后更新,会弹出更新向导,然后默认的Next Next就可以了……新建一个工程,在工程添加向导里你可能看不到XFire的选项,不急,在工程添加完成后,在工程上右键,在菜单上会出现“为该工程配置XFire”特性,在这里设置就好了……针对之前没说清楚,在这里补充这一点……完……安装完毕,新建工程,右键->添加XFire支持虽然不能从新建工程向导中配置,也没问题,恩恩完……。
cxf框架的使用流程
CXF框架的使用流程1. 什么是CXF框架?Apache CXF(前身是Xfire)是一个开源的Web服务框架,用于构建和开发服务导向架构(SOA)应用程序。
CXF提供了一种简单而强大的方式来创建、部署和管理Web服务,支持SOAP、REST、XML和JSON等多种协议。
它基于Java标准,可以与Java EE和Spring框架无缝集成,是一个功能丰富且灵活的框架。
2. CXF框架使用流程使用CXF框架开发Web服务通常有以下几个步骤:步骤一:创建Web服务的接口首先,需要定义Web服务的接口。
在接口中定义服务的方法,参数和返回值类型。
接口可以按照业务需求进行设计,并使用注解来标记服务方法。
步骤二:实现服务接口接下来,需要实现定义的接口。
在实现类中编写具体的服务逻辑代码。
可以根据业务需求调用其他服务或持久化数据。
步骤三:发布Web服务使用CXF框架提供的工具类将服务发布为Web服务。
可以通过Spring配置文件或Java代码的方式来发布服务。
步骤四:客户端调用服务编写客户端代码来调用已发布的Web服务。
可以使用CXF框架提供的工具类生成客户端代码,也可以手动编写客户端调用代码。
步骤五:部署和运行将服务端和客户端的代码部署到相应的容器或服务器上。
可以使用Maven等构建工具打包项目,并将生成的war或jar文件部署到Tomcat或其他容器中运行。
3. CXF框架使用示例下面是一个使用CXF框架开发Web服务的简单示例:步骤一:定义服务接口package com.example.service; import javax.jws.WebMethod;import javax.jws.WebService;@WebServicepublic interface HelloWorldService { @WebMethodString sayHello(String name);}步骤二:实现服务接口```java package com.example.service;import javax.jws.WebService;@WebService(endpointInterface =。
XFIRe概述
XFire 概述XFire 是 codeHaus 组织提供的一个开源框架,它构建了 POJO 和 SOA 之间的桥梁,主要特性就是支持将 POJO 通过非常简单的方式发布成 Web 服务,这种处理方式不仅充分发挥了 POJO 的作用,简化了 Java 应用转化为 Web 服务的步骤和过程,也直接降低了 SOA 的实现难度,为企业转向 SOA 架构提供了一种简单可行的方式。
XFire 目前最新的版本是 1.2.2,目前支持的特性主要包括:∙支持将 Web 服务绑定到 POJO、XMLBeans、JAXB1.1、JAXB2.0 和 Castor;∙支持基于 HTTP、JMS、XMPP 等多种协议访问 Web 服务;∙支持多种 Web 服务业界重要标准如 SOAP、WSDL、Web 服务寻址(WS-Addressing)、Web 服务安全(WS-Security)等;∙支持 JSR181,可以通过 JDK5 配置 Web 服务;∙高性能的 SOAP 实现;∙服务器端、客户端代码辅助生成;∙对 Spring、Pico、Plexus 等项目的支持等。
XFire 安装包XFire 框架目前的最新版本是 1.2.6,可以访问 下载XFire 框架的安装包,下载时请选择“全部二进制发布包(Binary Distribution in zip package)”,而不仅仅是“XFire jar 文件(Jar of all XFire modules)”。
下载完成后,我们可以将下载的 .zip 文件解压缩到任意的文件夹中(后面的章节中使用 % XFIRE_HOME % 表示 XFire 框架的安装目录),解压缩后形成的文件目录结构如下:∙api(目录)api 目录中是 XFire 框架中所有类(class)对应的 API 文档,为开发者使用 XFire 完成应用开发提供帮助。
∙examples(目录)examples 目录中包含了所有随 XFire 二进制包发布的实例,包括这些实例的源代码和相关 Web 应用配置内容。
Xfire指南
Xfire指南1. 概述XFire是全球众多牛人在与axis系列对比后一致投票的选择。
我比较欣赏的特性有:1.与Spring整合,无须生成一堆文件,无须打包独立war,直接将应用中的Pojo导出为Web服务。
2.Aegis--超简约的默认Java XML 绑定机制,且可以Plugin其他绑定机制。
3.JSR181--annotatiton驱动的POJO WebService配置。
4.基于Stax的高性能框架。
5.脱离Web服务器的单元测试能力。
网上的文档与例子总是不新,请大家抛开所有的文档,所有的Axis 习惯,单看这份代表XFire1.2.2最简约做法的指南。
2. 生火指南2.1 修改web.xml,在Web应用中增加XFire的入口注意XFire有了自己的Servlet,不再依赖Spring MVC的DispatchServlet,也就远离了大家不熟悉的Spring MVC URL Mapping,与Spring达致完美的整合。
这里指定了路径为/service/* ,即WebService的URL会被默认生成为/yyy/service/BookServiceservice/ServiceName ,其中ServiceName默认为下文中的接口名。
xml 代码1.<servlet>2. <servlet-name>xfireservlet-name>3. <servlet-class>org.codehaus.xfire.spring.XFireSpringServletservlet-class>4. servlet>5. <servlet-mapping>6. <servlet-name>xfireservlet-name>7. <url-pattern>/service/*url-pattern>8. servlet-mapping>如果应用使用了Hibernate,使用了OpenSessionInView Filter,注意配置OSIV Filter Filter覆盖xfire servlet的路径,即本例中的/service/*.2.2 编写窄接口,抽取POJO中要导出的服务从已有的BookManager.java中,抽取出一个窄接口,仅暴露需要导出为Web Service的方法。
信步漫谈之Xfire—基础介绍
信步漫谈之Xfire—基础介绍XFire 是与 Axis 2 并列的新⼀代 Web Service 框架,通过提供简单的 API ⽀持 Web Service 各项标准协议,能够快速地开发 Web Service 应⽤。
和其他 Web 服务引擎相⽐,XFire 的配置⾮常简单,可以⾮常容易地和 Spring 集成。
以下以⼀个实例讲解如何编写⼀个 Xfire 的服务端与客户端:xfire版本:xfire-distribution-1.2.6.zip⽬录结构:关键代码:User.javaIHelloService.javaHelloService.javaClientTest.javaservices.xmlweb.xml导⼊ jar 包:将 xfire-all-1.2.6.jar 以及 lib ⽬录下的 jar 包全部导⼊即可。
services.xml ⽂件默认的存放⽬录是 WEB-INF/META-INF/xfire 下或 WEB-INF/classes/META-INF/xfire 下,如果是后者,那么实际项⽬中META-INF 应放置于 src ⽬录下:这样,部署到服务器中后 META-INF ⽂件夹就会存在于 WEB-INF/classes/ ⽬录下。
如果要⾃⼰指定 services.xml ⽂件路径,可以将services.xml 路径配置在 web.xml ⽂件中,如下:<servlet><servlet-name>XFireServlet</servlet-name><servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class><!--The servlet will by default look for the configuration onthe classpath in "META-INF/xfire/services.xml". You canoverride it with this parameter. Seperate multiple configuration files with a comma.--><!-- 默认会在classpath的META-INF/xfire/下查找services.xml⽂件,可以覆盖这个参数,指定多个配置⽂件--><init-param><param-name>config</param-name><param-value>xfire-services.xml</param-value></init-param></servlet>插⼊⼀段 init-param 配置,param-name 为 config,指定 services.xml ⽂件的路径以及⽂件名。
SSH+XFire+WebService服务端和客户端
SSH+XFire+WebService服务端和客户端1.开发环境MyEclipse2.创建项目: new Web Service Project选择XFire ,J2EE specification 选择Java EE 5.0,选择Next点击next点击Finish创建项目成功!Web.xml自动配置3.配置ssh环境(1)Struts选中项目,点击MyEclipse—>Project Capabalities Add Struts Capabalities根据自己的struts包版本选择相关的,下面的com.yourcompany.struts和com.yourcompany.struts.ApplicationResources删除就行我用的struts2,选择struts2.1,点击下一步Next点击Finish完成了Struts的配置。
此时web.xml中自动配置(2)Hibernate配置选中项目,点击MyEclipse—>Project Capabalities Add Hibernate Capabalities,选择Hibernate3.1NextNext配置连接数据库的信息。
配置好完成该。
(3)Spring选中项目,点击MyEclipse—>Project Capabalities Add Spring Capabalities,选择Spring2.5一直Next到结束就OK.此时Sping环境配置完成。
4.代码Service接口实现类在service.xml中配置信息配置好之就可以在浏览器访问了http://localhost:8088/aa/services/billService?wsdl,访问结果如下5.客户端测试有两种方法:第一种是通过服务端提供的接口类进行调用。
代码如下import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service;importorg.codehaus.xfire.service.binding.ObjectServiceFactory;import com.framework.app.service.IBillOfService;public class BillManage {public static void main(String[] args) throws Exception { Service srModel = newObjectServiceFactory().create(IBillOfService.class);XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());String endPoint ="http://localhost:8088/aa/services/billService";IBillOfService service = (IBillOfService) factory.create(srModel,endPoint);String billStr = service.weightNoteList("1323XSG02", 10, 1);System.out.print("提交返回:" +billStr);}}第二种是直接通过url调用, 不用客户端提供接口类。
Proxifier3.0汉化版安装+ 指向金枪鱼代理的设置指南
Proxifier3.0 化版安装+ 指向金枪鱼代理的设置指南Proxifier 3.0 汉化版Proxifier 是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。
支持64位系统,支持Xp,Vista,Win7,支持socks4,socks5,http代理协议,支持TCP,UDP 协议,可以指定端口,指定IP,指定程序等运行模式,兼容性非常好。
有许多网络应用程序不支持通过代理服务器工作,因此不能用于局域网或防火墙后面。
这些会损害公司的隐私和导致很多限制。
Proxifier 解决了这些问题和所有限制,让您有机会不受任何限制使用你喜爱的软件。
此外,它让你获得了额外的网络安全控制,创建代理隧道,并添加使用更多网络功能的权力。
1、首先确定金枪鱼的正确设置以及成功启动服务。
注意:如果你在使用金枪鱼代理之前的正常上网,不需要进行代理设置,则按金枪鱼默认设置即可。
如果你在使用金枪鱼代理之前的正常上网,需要进行代理设置才能上网,则需要对金枪鱼进行二级代理设置。
(详见网站--→帮助--→使用指南-→金枪鱼代理软件使用指南)2、再从网上或金枪鱼网站相关下载栏目里,下载该程序的压缩包,然后解压缩,双击setup.exe文件,运行安装:点击下一步点击下一步选择安装目录(默认为:C:\Program Files\Proxifier),你可以选择为别的磁盘目录下。
然后一直点击下一步点击安装安装完成后,点击完成,重启电脑。
如果您还安装了360等杀毒软件,你点允许通过就行了。
重启电脑后,Proxifier就安装完成了。
接下来启动Proxfirer主程序并设置指向金枪鱼代理步骤如下:鼠标左键点击服务器按钮,弹出如下窗口:按照上图红圈圈,来写入地址,端口号,并选择socks5 版本 5,最后点击确定注意:这里选择否,Proxifier默认不使用该项代理服务器。
Xfire开发的webservice客户端超时问题解决
Xfire开发的webservice客户端超时问题解决Xfire开发的webservice客户端超时问题解决最近某电信ISAG升级后我们的客户端出现大量超时提示,并且下发很慢[MeChannelGw]2010-06-10 06:00:05 (HttpMethodBase.java:2102)-[INFO] Timer-1 - 100 (continue) read timeout. Resume sending the request [MeChannelGw]2010-06-10 06:00:08 (HttpMethodBase.java:2102)-[INFO] Timer-1 - 100 (continue) read timeout. Resume sending the request [MeChannelGw]2010-06-10 06:00:11 (HttpMethodBase.java:2102)-[INFO] Timer-1 - 100 (continue) read timeout. Resume sending the request [MeChannelGw]2010-06-10 06:00:14 (HttpMethodBase.java:2102)-[INFO] Timer-1 - 100 (continue) read timeout. Resume sending the request [MeChannelGw]2010-06-10 06:00:17 (HttpMethodBase.java:2102)-[INFO] Timer-1 - 100 (continue) read timeout. Resume sending the request每隔3-4秒才下发一次数据。
曾以为是对方服务器问题,网络的问题等等,就是换台机器部署,还是会有这个问题。
实际,上因为Xfire默认的机制下,会不断的去和服务端握手造成的。
西电校园网Linux系统锐捷客户端安装
Linux 连接校园网南校区宿舍南校区 10 月 27 日起进行客户端升级,11 月 1 日起停止使用 3.95 版锐捷客户端 日起进行客户端升级,政策问题南校区的 Linux 用户一直饱受上网认证的困扰,尤其在 2010 年秋季之后,有关部门禁止 Linux 系统 用户接入校园网,经过长期交涉和校园网升级,Linux 和 Mac 用户都已得到有关部门支持。
认证客户端请不要怕跑腿, 先带着你的 学生证 学生证,MAC 地址 此前使用的 IP 地址 去自己楼的网管那里登记, 地址,此前使用的 等网管 回复后,会将你的帐号加入 Linux 用户组,给你分配一个静态 IP 地址,并将认证客户端拷贝给你。
将客户端 xrgsu 复制到 /usr/bin 下,这里需要 root 权限。
这份认证客户端已经很有历史了,需要一 些老的依赖库。
下载 /extra/xrgsu_lib.zip ,解压到 /usr/lib 下即可。
配置上网设置静态 IP假设你是普通用户, 那么你应该在使用 NetworkManager, 也就是屏幕右上角那个网络的图标, 单击它,选择使用静态 IP 地址,将网管给你的信息填入即可。
你可以看下一节了。
如果你想使用命令行设置网络,那么你应该先停止 NetworkManager,否则它会在你想不到的 时候自动改掉你设好的网络。
对于 Ubuntu 等 Debian 系:/etc/init.d/network-manager stop就可以了。
现在,折腾吧~ 假设网管给你分配的静态 IP 地址是 222.25.253.2 ,那么你所在网段的网关就是 222.25.253.254 ,假 设你的网卡是 eth0sudo ip link set dev eth0 up #启动网卡 sudo ip addr add 222.25.253.2/24 dev eth0 #设置 IP 地址 sudo ip route add default via 222.25.253.254 dev eth0 #设置 网关还要设置一下 DNSsudo gedit /etc/resolv.conf加入:nameserver 8.8.8.8认证首先请关掉你的无线网卡sudo ip link set dev wlan0 down认证:sudo xrgsu -a XRGSupplicant 1.1.1 Ruijie Network CopyRight 2004-2005 Please input your user name:01081209 Please input your password: Use DHCP,1-Use,0-UnUse(Default: 0):0 You have 2 Nic: 0. eth0 Desc: (null) 1. wlan0 Desc: (null) Please select which NIC will be used(0-3,Default:0)0 Use default auth parameter,0-Use 1-UnUse(Default: 0):0接下来应该就能看到认证成功了。
webService(axis2,cxf,xfire,gsoap)介绍
Axis2,CXF,xifire1. Axis2.x (3)1.1. 开发准备工作 (3)1.1.1. 环境 (3)1.1.2. 单独启动AXIS2服务 (4)1.1.3. 将axis2-1.6.2-bin.zip中的项目打成axis2.war包 (4)1.1.4. Axis2脚本 (5)1.1.5. 安装eclipse插件(可选) (7)1.1.6. axis2-bin文件目录结构 (8)1.1.7. 部署axis2.war到tomcat (8)1.1.8. 上传services(Uploading Services) (9)1.2. Axis2开发部署 (9)1.2.1. 编写服务器代码,和配置文件 (10)1.2.2. 发布 (11)1.2.3. 通过class文件生成wsdl文件(java2wsdl) (13)1.2.4. 通过wsdl文件生成Java访问代码(wsdl2java) (13)1.2.5. 调用:Axis2开发WebService客户端的3种方式 (14)1.2.6. PS:配置文件介绍 (21)1.3. 大病系统ESB接口开发 (25)1.3.1. esb接口标准 (26)1.3.2. esb接口开发 (31)1.3.3. esb接口调试测试 (53)1.3.4. esb接口发布 (53)2. CXF (53)2.1. 准备工作 (54)2.2. 开发示例 (54)2.2.1. 编写服务端接口 (55)2.2.2. 编写服务实现 (56)2.2.3. 编写webServiceApp.java类来暴露web服务 (57)2.2.4. 启动服务 (57)2.2.5. 编写客户端访问服务 (57)2.2.6. 测试 (58)2.2.7. 集成到spring (58)2.2.8. 通过wsdl文件生成客户端和服务器端代码 (61)3. xfire (62)3.1. 准备工作 (62)3.2. 开发步骤 (62)3.2.1. 建立目录结构 (62)3.2.2. 添加依赖包 (63)3.2.3. 编写服务端代码 (63)3.2.4. 配置web.xml (66)3.2.5. 创建xfire配置文件 (67)3.2.6. services.xml的作用 (68)3.2.7. 在服务器上运行服务 (69)4. Axis与XFire的比较 (72)4.1. XFire与Axis1性能的比较 (72)4.2. XFire与Axis2的比较 (72)5. cxf与axis2比较 (73)6. WSDL文件 (74)6.1. 抽象定义 (74)6.2. 具体定义 (74)7. JAXB (76)7.1. Java SE中的JAXB (76)7.2. 使用 (77)7.3. 缺省的数据类型绑定 (77)7.4. 代码示例 (78)1.Axis2.xWeb Service是现在最适合实现SOAP的技术,而Axis2是实现Web Service的一种技术框架(架构)。
XFire 1.2.6调用Web Service的几种方法
XFire 1.2.6调用Web Service的几种方法最近由于项目的需求,我开始学习XFire 1.2.6。
XFire的服务发布很简单,但由于xfire为用户提供了多种调用(invoke) web service的方法,所以在编写客户端代码的时侯,需要我们做一番斟酌。
在不同的应用环境下,我们可能需要采用不同的服务调用的方法。
本文将详细介绍这几种调用web服务的方法。
方法一:动态客户端(Dynamic Client)这是一种最简单的web服务调用方法。
具体过程如下:1.创建一个服务代理,其中url为调用服务的wsdl地址。
Client client = new Client(new URL(url));2.调用web服务,输入参数(简单类型)。
Object[] results = client.invoke(methodName, new Object[]{param1,param2});3.打印web 服务运行结果System.out.println((ReturnValueType)results[0]);全过程只需要三个过程,非常简单。
但是,上述过程仅限于简单的方法调用,对于那些以复杂数据结构为参数的方法,以及复杂结构的返回值的方法,需要采用另外的处理方法,否则将无法正常运行。
关于复杂参数的传递以及调用复杂返回值方法的过程还有待进一步研究,如果哪个读者熟悉这一块,可以与我联系,本人将非常感谢。
方法二:代理工厂方法(Proxy Factory)一般的方法如如下:1.创建一个服务实例,就像在自己的服务器上创建一样。
要注意的是,这里的“”Service serviceModel = new ObjectServiceFactory().create(YourService.class);要注意的是,这里的“YourService”是接口类,而不是接口的实现类。
2.定义服务URLString serviceURL = “http://localhost:8080/XFireTest/services/YourService”;3.为服务创建一个代理YourService client = (YourService) new XFireProxyFactory().create(serviceModel,serviceURL);4.使用代理访问服务提供的方法String name = (String) client.getName();如果已经知道调用的服务在本地时,我们可以采取下面方法(本地传输)来调用,这种方法可以提高调用服务的速度,减少调用服务的延迟时间。
xfire根据WSDL生成客户端代码
指定WSDL文件的位置、存根代码的输出地址及对应的类包,点击Finish。
3.XFire插件将在生成客户端代码存根的同时生成服务端代码的存根,如图16-7所示。
图16-6 创建客户端代码存根 图16-7 生成的代码
安装Eclipse XFire插件
1.Help→Software Updates→Find and Install...;
2.选择“Search for new features to install”,并点击Next;
3.选择“New Remote Site...”,创建一个Name为Xfire且URL为
下面,我们利用XFire生成的BbtForumServiceClient对服务端的Web S例化一个BbtForumServiceClient,然后通过URL指定Web Service的服务地址,然后创建一个服务的窄接口实例,如①所示,接着我们就可以使用这个窄接口实例进行Web Service服务的调用了。
根据WSDL生成客户端代码
XFire允许通过运行Ant任务,根据WSDL文件生成访问Web Service的客户端代码存根,同时XFire还提供了一个Eclipse插件完成相同的任务。在本节中,我们将学习通过XFire Eclipse插件生成BbtForumService客户端存根代码的知识。
/xfire/update/的网站;
4.点击Finish安装XFire插件。
使用插件创建客户端代码存根
1.File→New→Other...→XFire→Code generation from WSDL document。
2.弹出一个对话框,如图16-6所示。
BbtForumServiceClient是BbtForumServicePortType的工厂类,它提供了若干个获取BbtForumServicePortType实例的重载方法。BbtForumServicePortType对应服务端的窄接口BbtForumService类。而BbtForumServiceImpl是服务端的存根代码,在META-INF中还有XFire的服务配置文件。对于客户端来说,一般不需要服务端的代码,所以用户可以将BbtForumServiceImpl和META-INF删除。
java用XFire调用webservice例子
java用XFire开发调用webService例子XFire 概述XFire 是codeHaus 组织提供的一个开源框架,它构建了POJO 和SOA 之间的桥梁,主要特性就是支持将POJO 通过非常简单的方式发布成Web 服务,这种处理方式不仅充分发挥了POJO 的作用,简化了Java 应用转化为Web 服务的步骤和过程,也直接降低了SOA 的实现难度,为企业转向SOA 架构提供了一种简单可行的方式。
XFire 目前最新的版本是1.2.2,目前支持的特性主要包括:支持将Web 服务绑定到POJO、XMLBeans、JAXB1.1、JAXB2.0 和Castor;支持基于HTTP、JMS、XMPP 等多种协议访问Web 服务;支持多种Web 服务业界重要标准如SOAP、WSDL、Web 服务寻址(WS-Addressing)、Web 服务安全(WS-Security)等;支持JSR181,可以通过JDK5 配置Web 服务;高性能的SOAP 实现;服务器端、客户端代码辅助生成;对Spring、Pico、Plexus 等项目的支持等。
XFire 安装包XFire 框架目前的最新版本是1.2.6,可以访问 下载XFire 框架的安装包,下载时请选择“全部二进制发布包(Binary Distribution in zip package)”,而不仅仅是“XFire jar 文件(Jar of all XFire modules)”。
下载完成后,我们可以将下载的.zip 文件解压缩到任意的文件夹中(后面的章节中使用% XFIRE_HOME % 表示XFire 框架的安装目录),解压缩后形成的文件目录结构如下:api(目录)api 目录中是XFire 框架中所有类(class)对应的API 文档,为开发者使用XFire 完成应用开发提供帮助。
examples(目录)examples 目录中包含了所有随XFire 二进制包发布的实例,包括这些实例的源代码和相关Web 应用配置内容。
用XFire开发 WebService全教程
XFire开发WebServiceXFire简介:XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。
和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring 集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率. 详细内容请看:/view/920041.htmlWebService简介:它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web .应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。
Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。
一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。
具体内容请访问:/view/837392.html开发环境:JDK 1.6;MyEclipse8.5;tomcat 6.0;Windows XP;XFire1.2接下来我们看怎么用XFire来构建一个webservice服务端。
1.创建工程打开MyEclipse 8.5,新建一个WebService工程。
如下图Webservice服务端名称Webservice服务路径什么都不用改动services.xml2.创建webserice服务.MyServiceTestImpl.java代码如下:Service.xml配置文件如下:3.测试服务端测试服务器我们采用Tomcat, 需要将做好的服务端打包部署到tomcat上,然后启动. 在进行测试.可以看到,我们服务端提供了一个名叫“sayHello”的接口.我们点击这个方法名.在下面填入字符串. 点击GO如下这样服务端就返回一个字符串. 说明我们服务端测试通过.4.创建客户端代码创建客户端可以用MyEcilse自带的创建客户端方式.去创建. 比较简单. 傻瓜式操作.这里我就不在示范. 我采用手写的方式写一个客户端.这样有助于大家理解.也能加深记忆.(1)创建一个工程. MyserviceCilent 添加XFire架包. 工程架构如下.(2)创建接口实现类.IMyServiceTest.java. 源码如下:package service.client;//Generated by MyEclipsepublic interface IMyServiceTest {public String sayHello(String user);}MyServiceTestImpl.java 源码如下:package service.client;//Generated by MyEclipsepublic class MyServiceTestImpl implements IMyServiceTest { public String sayHello(String user) {return"您好,"+user;}}(3)写测试类.ClientTest.java 源码如下:public static void main(String [] args){Service serviceModel = newObjectServiceFactory().create(IMyServiceTest.class);XFire xfire = XFireFactory.newInstance().getXFire();XFireProxyFactory factory = new XFireProxyFactory(xfire); String serviceUrl ="http://10.222.22.97:8080/MyServiceTest/services/MyServiceTest";IMyServiceTest client = null;try {client = (IMyServiceTest) factory.create(serviceModel, serviceUrl);} catch (MalformedURLException e) {System.out.println("Client call webservice has exception: "+ e.toString());}String result1 =client.sayHello("张三");System.out.print(result1);}直接执行后会返回以下结果.5.现在一个简单的webservice已经开发完成. 当然有的同学会提出. 只可以传递字符串类型吗?当然不是. 后续我还为大家在写传递对象类型. 集合类型. 数组类型. 敬请期待.谢谢!有什么问题,可以联系我. 邮箱:zhubox1j7253@很高兴能和你探讨.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
xFire客户端生成及使用1.xFire客户端生成右键项目名称,new —other ,选择Code generation from WSDL document填写WSDL地址或者文件路径,(由客户端提供),已经生成代码存放的路径生成的文件如下:2.配置weblogic启动项1.由于xFire需要的jar,会与weblogic自带的jar文件产生冲突,所以weblogic启动时需要先加载一些jar :2.修改weblogic的启动配置。
对startWebLogic.cmd进行编辑,找到set CLASSPATH = 设置的地方,加上需要载入的jar,如:set CLASSPATH= %MEDREC_WEBLOGIC_CLASSPATH%修改成:(假设以上jar包存放在E:\lib\下面)set CLASSPATH=E:\lib\xfire-aegis-1.2.6.jar;E:\lib\xfire-jaxb2-1.2.6.jar;E:\lib\xfire-jsr181-api-1.0-M1.jar;E:\lib\qname.jar;E:\lib\wsdl4j-1.5.2.jar;E:\lib\jdom-1.0.jar;E:\lib\xfire-all-1.2.6.jar;E:\lib\jaxb-api-2.0.jar;E:\lib\commons-httpclient-3.0.jar;E:\lib\commons-codec-1.3.jar;E:\lib\commons-beanutils-1.7.0.jar;E:\lib\commons-beanutils-1.7.0.jar;E:\lib\commons-logging-1.0.4.jar;E:\lib\log4j-1.2.13.jar;%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%3.代码编写1.服务调用根据xFire生成的客户端ScheduleWebServiceClient client = new ScheduleWebServiceClient(); ScheduleWebServicePortType service = client.getScheduleWebServiceHttpPort();这样,直接可以由service调用webService的接口。
2.数据封装:xFire 生成出来的调用webService 接口所需要的实体类都在vo 文件夹下面,在vo 类里面,与普通的java 实体一样,都包含属性 和 该属性的set,get 方法,但是除基本数据类型外,其他的类型都被封装成JAXBElement ,如String 类型,被封装成:JAXBElement<String>。
如:ScheduleDataForCheckVo.java生成一个xml 元素实例需要四个参数:public JAXBElement (QName name, //xml 元素标记名称的 Java 绑定Class <T > declaredType, // xml 元素声明类型的 Java 绑定Class scope, // xml 元素声明作用域的 Java 绑定T value) //表示 xml 元素值的 Java 实例1.JAXBElement<String>,JAXBElement<Long>类型:注意 new QName 时候的两个参数,对应着 vo 文件里面该属性注释中的name 和namespace.public class ScheduleDataForCheckVo {@XmlElementRef (name = "cancelContent", namespace = "", type = JAXBElement.class ) protected JAXBElement<String> cancelContent;public JAXBElement<String> getCancelContent() { return cancelContent;} public void setCancelContent(JAXBElement<String> value) {this .cancelContent = ((JAXBElement<String> ) value);} }于是,我们在给VO对象set值的时候,就应该这样写:scheduleDataVo.setCancelContent(New JAXBElement<String>(new QName("","cancelContent"),String.class,null,"要传递的值"));2.DATE类型,在VO类中会转变成XMLGregorianCalendar 类型,这时候我们需要将日期转化成 Calendar 类型,再转成 XMLGregorianCalendar 类型下面是我写的一个时间转换的公共方法:import mons.beanutils.*;import java.util.Calendar;import java.util.Date;import javax.xml.datatype.XMLGregorianCalendar;import .apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;/***XMLGregorianCalendar和Calendar之间的转换器,适用于Apache Commons BeanUtils.copyProperties方法。
*//当需要转换为XMLGregorianCalendar类型时使用*ConvertUtils.register(* new XMLGregorianCalendarConverter(),* XMLGregorianCalendar.class);*//当需要转换为Calendar类型时使用*ConvertUtils.register(new XMLGregorianCalendarConverter(),Calendar.class);*BeanUtils.copyProperties(destObj,srcObj);*注意:java.util.Calendar的时区(ZONE_OFFSET)是以毫秒为单位的值。
</p>* //也可以直接传递 DATE 类型的数据进来* converter.convert(XMLGregorianCalendar.class,new Date())**/public class XMLGregorianCalendarConverter implements Converter {public Object convert(Class arg0, Object arg1) {if(arg1 instanceof XMLGregorianCalendar){return this.convert(arg0, (XMLGregorianCalendar)arg1);}else{return this.convert(arg0, (Calendar)arg1);}}public Calendar convert(Class calendarType, XMLGregorianCalendar xmlCalendar){ return xmlCalendar.toGregorianCalendar();}public XMLGregorianCalendar convert(Class xmlCalendarType, Calendar calendar){ XMLGregorianCalendar cal = new XMLGregorianCalendarImpl();cal.setYear(calendar.get(Calendar.YEAR));cal.setMonth(calendar.get(Calendar.MONTH) +1);cal.setDay(calendar.get(Calendar.DAY_OF_MONTH));cal.setHour(calendar.get(Calendar.HOUR_OF_DAY));cal.setMinute(calendar.get(Calendar.MINUTE));cal.setSecond(calendar.get(Calendar.SECOND));cal.setMillisecond(calendar.get(LISECOND));cal.setTimezone(calendar.get(Calendar.ZONE_OFFSET) / 60000 );return cal;}public XMLGregorianCalendar convert(Class xmlCalendarType, Date date){ if(date == null){date = new Date();date.setYear(0);System.out.println(" convert new Date() " + date);}Calendar calendar=Calendar.getInstance();calendar.setTime(date);return convert( XMLGregorianCalendar.class , calendar);}}。