MiXFire服務(wù)部署手冊模板_第1頁
MiXFire服務(wù)部署手冊模板_第2頁
MiXFire服務(wù)部署手冊模板_第3頁
MiXFire服務(wù)部署手冊模板_第4頁
MiXFire服務(wù)部署手冊模板_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

XFire服務(wù)布署手冊

-05-1511:36

閱讀22

評論0

字號:

小一、準(zhǔn)備工作:工程目錄結(jié)構(gòu)工程目錄結(jié)構(gòu)以下圖所表示:ldaxfire是工程根目錄。/WEB-INF/classes/META-INF/xfire目錄用于存放service.xml文件。將下包(用到)copy到/WEB-INF/lib目錄下。

<servlet-name>XFireServlet</servlet-name>

<display-name>XFireServlet</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>這么在工程中公布全部服務(wù)全部能夠在工程URLservices子目錄下訪問。三、類結(jié)構(gòu)調(diào)整XFire對于要公布服務(wù)沒有多出要求,它能夠自動將指定服務(wù)類公共方法公布出去。不過POJOs調(diào)用要求傳入?yún)?shù)類型必需是接口;同時因為XFire生成樁使用了不支持JSR181注釋類型,所以在這里最好是遵從POJOs要求,為每一個要公布服務(wù)類生成一個接口,方便于低版本用戶端使用POJOs方法進行訪問。四、類型影射XFire支持?jǐn)?shù)據(jù)類型包含基礎(chǔ)類型、數(shù)組、集合、字符串、Date(java.util.Date、java.util.Calendar、java.sql.Timestamp、java.sql.Date、java.sql.Time)、XML類型(Document、Element、XMLStreamReader、Source)及以上類型組成復(fù)合類型。基礎(chǔ)類型、數(shù)組、String、Date類型不用進行類型影射,除此之外數(shù)據(jù)類型如List、Map等集合對象或是其它復(fù)合類型,必需要寫對應(yīng)類型影射。XFire類型影射在ServiceClassName.aegis.xml(ServiceClassName為服務(wù)類/接口名字)文件中申明。在這里盡可能要求公布服務(wù)參數(shù)和返回值不要超出基礎(chǔ)類型、數(shù)組、String泛圍,因這類型影射在此不作具體說明。在XFire工程中service.xml必需在/WEB-INF/classes/META-INF/xfire/目錄下。其基礎(chǔ)格式以下

<inHandlers>

<handlerhandlerClass=""></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>

<handlerhandlerClass=""/>

</inHandlers>

<outHandlers>

<handlerhandlerClass=""/>

</outHandlers>

<faultHandlers>

<handlerhandlerClass=""/>

</faultHandlers>

<createDefaultBindings>true|false</createDefaultBindings>

<bindings>

<soap11Bindingtransport=""

allowUndefinedEndpoints="">

<endpoints>

<endpointurl=""/>

</endpoints>

</soap11Binding>

<soap12Bindingtransport=""

allowUndefinedEndpoints="">

<endpoints>

<endpointurl=""/>

</endpoints>

</soap12Binding>

</bindings>1、name:必需。ServiceRegisty就是經(jīng)過這個名字進行服務(wù)注冊,服務(wù)布署完成后也是用它來調(diào)用服務(wù)。3、serviceClass:必需。要布署到服務(wù)中類,能夠是接口。4、implementationClass:可選。服務(wù)被調(diào)用時使用實現(xiàn)類。假如serviceClass值是一個接口,那么這個值就必需配置,且必需為serviceClass指定接口實現(xiàn)類。5、serviceFactory:可選。ServiceFactory控制服務(wù)創(chuàng)建和配置。6、bindingProvider:設(shè)置bindingProvider,提供綁定相關(guān)信息。如端口等。7、style:可選。參數(shù)樣式。默認(rèn)值為wrapped。可取值為wrapped、message、document及rpc。8、use:可選。指定編碼類型。取值能夠是encoding或litaral,現(xiàn)在XFire支持literal格式,即無編碼。9、scope:可選。指定服務(wù)生存周期。默認(rèn)值為application,即在所以訪問期間只創(chuàng)建一個服務(wù),不用時能夠會被持久化。能夠是application、session或request。invoker:可選。設(shè)置調(diào)用轉(zhuǎn)接器。假如當(dāng)服務(wù)實現(xiàn)類不是一個無格式j(luò)avabean時invoker能夠指定其調(diào)用方法。excutor:可選值。能夠為服務(wù)指定一個默認(rèn)值以外實施策略。handlers:能夠使用inHandlers、outHandlers或faulterHandlers為服務(wù)指定輸入、輸出和犯錯時調(diào)用處理。每個handler本身是一個XML解析處理句柄。createDefaultBinding:可選。默認(rèn)為true,即創(chuàng)建默認(rèn)SOAP1.1HTTP綁定。假如不想創(chuàng)建默認(rèn)綁定,可將其值設(shè)為false。綁定配置:每一個綁定全部要指定一個transportID。下面是對應(yīng)Transport和ID對應(yīng)表。使用endpoint選項能夠覆蓋掉默認(rèn)端口地址。JMSurn:xfire:transport:jmsLocalurn: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>用自己實際路徑和類名替換上面配置就是一個經(jīng)典XFireservice配置。六、用戶端調(diào)用用戶端調(diào)用采取POJOs方法。在這種方法下要用到在服務(wù)端定義服務(wù)接口。具體代碼以下:

ServiceserviceModel=newObjectServiceFactory().create(

XFireProxyFactoryserviceFactory=newXFireProxyFactory();

ServiceInterfaceservice=(ServiceInterface)serviceFactory.create(

serviceModel,serviceURL);

Clientclient=Client.getInstance(service);

client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT,"0");

data=service.serviceMethod();注:其中ServiceInterface在實際工程中要以實際接口類型替換,serviceMethod以具體方法名替換。在XFire1.2以后支持SOAP消息GZip壓縮傳輸,在適宜地方開啟GZip壓縮能夠降低網(wǎng)絡(luò)傳輸數(shù)據(jù)量,加緊速度。在XFire中開啟GZip壓縮要用到一個開源Filter:PJLCompressingFilter。這個Filter最新版本是1.6.4,自1.5.0開始該工程開始構(gòu)建于JDK5.0,所以在JDK1.4環(huán)境下只能使用1.4.6(這個版本會和高版本同時更新)。一、服務(wù)端開啟GZip:在服務(wù)端開啟GZip只需將PJLCompressingFilter下jar包(用到)導(dǎo)入到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:服務(wù)端加入GZip時web.xml中增加配置注:依據(jù)web.xml文法定義,這個定義必需在servlet定義之前。二、用戶端啟用GZip:用戶端開啟GZip只要將用戶端GZip屬性設(shè)為true卻可。代碼以下:

ServiceserviceModel=newObjectServiceFactory().create(

XFireProxyFactoryserviceFactory=newXFireProxyFactory();

ServiceInterfaceservice=(ServiceInterface)serviceFactory.create(

serviceModel,serviceURL);

Clientclient=((XFireProxy)Proxy.getInvocationHandler(service))

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論