收藏 分销(赏)

MiXFire服务部署手册模板.doc

上传人:w****g 文档编号:2947927 上传时间:2024-06-11 格式:DOC 页数:8 大小:40.04KB 下载积分:6 金币
下载 相关 举报
MiXFire服务部署手册模板.doc_第1页
第1页 / 共8页
MiXFire服务部署手册模板.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
XFire服务布署手册   -05-15 11:36   阅读22   评论0   字号:大 中  小小 一、准备工作:工程目录结构 工程目录结构以下图所表示: ldaxfire是工程根目录。/WEB-INF/classes/META-INF/xfire目录用于存放service.xml文件。将下包(用到)copy到/WEB-INF/lib目录下。               <servlet-name>XFireServlet</servlet-name>               <display-name>XFire Servlet</display-name>               <servlet-class>                      org.codehaus.xfire.transport.http.XFireConfigurableServlet               </servlet-class>        <servlet-mapping>               <servlet-name>XFireServlet</servlet-name>               <url-pattern>/services/*</url-pattern>        </servlet-mapping> 这么在工程中公布全部服务全部能够在工程URLservices子目录下访问。 三、类结构调整 XFire对于要公布服务没有多出要求,它能够自动将指定服务类公共方法公布出去。不过POJOs调用要求传入参数类型必需是接口;同时因为XFire生成桩使用了不支持JSR181注释类型,所以在这里最好是遵从POJOs要求,为每一个要公布服务类生成一个接口,方便于低版本用户端使用POJOs方法进行访问。 四、类型影射 XFire支持数据类型包含基础类型、数组、集合、字符串、Date(java.util.Date、java.util.Calendar、java.sql.Timestamp、java.sql.Date、java.sql.Time)、XML类型(Document、Element、XMLStreamReader、Source)及以上类型组成复合类型。 基础类型、数组、String、Date类型不用进行类型影射,除此之外数据类型如List、Map等集合对象或是其它复合类型,必需要写对应类型影射。 XFire类型影射在ServiceClassName.aegis.xml(ServiceClassName为服务类/接口名字)文件中申明。 在这里尽可能要求公布服务参数和返回值不要超出基础类型、数组、String泛围,因这类型影射在此不作具体说明。 在XFire工程中service.xml必需在/WEB-INF/classes/META-INF/xfire/目录下。其基础格式以下               <inHandlers>                      <handler handlerClass=""></handler>               </inHandlers>               <name />               <namespace />               <serviceClass />               <implementationClass />               <serviceFactory />               <bindingProvider />               <style>document|rpc|message|wrapped</style>               <use>literal|encoded</use>               <scope>request|session|application</scope>               <invoker />               <executor />               <inHandlers>                      <handler handlerClass="" />               </inHandlers>               <outHandlers>                      <handler handlerClass="" />               </outHandlers>               <faultHandlers>                      <handler handlerClass="" />               </faultHandlers>               <createDefaultBindings>true|false</createDefaultBindings>               <bindings>                      <soap11Binding transport=""                             allowUndefinedEndpoints="">                             <endpoints>                                    <endpoint url="" />                             </endpoints>                      </soap11Binding>                      <soap12Binding transport=""                             allowUndefinedEndpoints="">                             <endpoints>                                    <endpoint url="" />                             </endpoints>                      </soap12Binding>               </bindings> 1、name:必需。ServiceRegisty就是经过这个名字进行服务注册,服务布署完成后也是用它来调用服务。 3、serviceClass:必需。要布署到服务中类,能够是接口。 4、implementationClass:可选。服务被调用时使用实现类。假如serviceClass值是一个接口,那么这个值就必需配置,且必需为serviceClass指定接口实现类。 5、serviceFactory:可选。ServiceFactory控制服务创建和配置。 6、bindingProvider:设置bindingProvider,提供绑定相关信息。如端口等。 7、style:可选。参数样式。默认值为wrapped。可取值为wrapped、message、document 及rpc。 8、use:可选。指定编码类型。取值能够是encoding或litaral,现在XFire支持literal格式,即无编码。 9、scope:可选。指定服务生存周期。默认值为application,即在所以访问期间只创建一个服务,不用时能够会被持久化。能够是application、session或request。 invoker:可选。设置调用转接器。假如当服务实现类不是一个无格式java bean时invoker能够指定其调用方法。 excutor:可选值。能够为服务指定一个默认值以外实施策略。 handlers:能够使用inHandlers、outHandlers或faulterHandlers为服务指定输入、输出和犯错时调用处理。每个handler本身是一个XML解析处理句柄。 createDefaultBinding:可选。默认为true,即创建默认SOAP1.1 HTTP绑定。假如不想创建默认绑定,可将其值设为false。 绑定配置:每一个绑定全部要指定一个transport ID。下面是对应Transport和ID对应表。使用endpoint选项能够覆盖掉默认端口地址。 JMS urn:xfire:transport:jms Local urn:xfire:transport:local               <name>ServiceName</name>               <serviceClass> com.yourcompany.yourpath..ServiceInterface</serviceClass>               <implementationClass>                      com.yourcompany.yourpath.ServiceImplClass               </implementationClass>               <inHandlers>                      <handler                             handlerClass="com.yourcompany.yourpath.HandlerClass" />               </inHandlers> 用自己实际路径和类名替换上面配置就是一个经典XFire service配置。 六、用户端调用 用户端调用采取POJOs方法。在这种方法下要用到在服务端定义服务接口。具体代码以下:               Service serviceModel = new ObjectServiceFactory().create(               XFireProxyFactory serviceFactory = new XFireProxyFactory();               ServiceInterface service = (ServiceInterface) serviceFactory.create(                             serviceModel, serviceURL);               Client client = Client.getInstance(service);               client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");               data = service.serviceMethod(); 注:其中ServiceInterface在实际工程中要以实际接口类型替换,serviceMethod以具体方法名替换。 在XFire1.2以后支持SOAP消息GZip压缩传输,在适宜地方开启GZip压缩能够降低网络传输数据量,加紧速度。 在XFire中开启GZip压缩要用到一个开源Filter:PJL Compressing Filter。这个Filter最新版本是1.6.4,自1.5.0开始该工程开始构建于JDK5.0,所以在JDK1.4环境下只能使用1.4.6(这个版本会和高版本同时更新)。 一、服务端开启GZip:在服务端开启GZip只需将PJL Compressing Filter下jar包(用到)导入到web/WEB-INF/lib目录下。并在web.xml文件中增加以下配置:               <filter-name>CompressingFilter</filter-name>               <filter-class>               </filter-class>               <init-param>                      <param-name>debug</param-name>                      <param-value>false</param-value>               </init-param>               <init-param>                      <param-name>statsEnabled</param-name>                      <param-value>true</param-value>               </init-param>        <filter-mapping>               <filter-name>CompressingFilter</filter-name>               <url-pattern>/*</url-pattern>        </filter-mapping> 代码清单7-1:服务端加入GZip时web.xml中增加配置 注:依据web.xml文法定义,这个定义必需在servlet定义之前。 二、用户端启用GZip:用户端开启GZip只要将用户端GZip属性设为true却可。代码以下:               Service serviceModel = new ObjectServiceFactory().create(               XFireProxyFactory serviceFactory = new XFireProxyFactory();               ServiceInterface service = (ServiceInterface) serviceFactory.create(                             serviceModel, serviceURL);               Client client = ((XFireProxy) Proxy.getInvocationHandler(service))                             .getClient(); 开启response压缩               client.setProperty(CommonsHttpMessageSender.                             GZIP_RESPONSE_ENABLED, Boolean.TRUE);               client.setProperty(CommonsHttpMessageSender.                             GZIP_RESPONSE_ENABLED,Boolean.TRUE); 同时开启response和request压缩               client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED,                             Boolean.TRUE);               client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");               data = service.serviceMethod(); 注:在同时启用时,无须再分别启用response和requestGZip压缩。 注意,当服务端没有启用GZip,用户端启用请求GZip压缩时,会产生SOAP解析错误,假如服务端开启了GZip压缩功效,用户端是否启用GZip全部没有影响。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服