概述
XFire是codeHaus組織提供的一個開源框架,它構建了POJO和SOA之間的橋樑,主要特性就是支持將POJO通過非常簡單的方式發布成Web服務,這種處理方式不僅充分發揮了POJO的作用,簡化了Java套用轉化為Web服務的步驟和過程,也直接降低了SOA的實現難度,為企業轉向SOA架構提供了一種簡單可行的方式。
特性包括
支持
•支持將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框架支撐環境:
•XFire套用配置:
參考資料
XFire在2007年後已停止更新。正式更名為Apache CXF,亦可以說是XFire2.0。
XFire - XFire安裝包:XFire框架目前最後的一個版本是1.2.6,在2007年5月3日發布,可以訪問下載XFire框架的安裝包,下載時請選擇“全部二進制發布包(BinaryDistributioninZipPackage)”,而不僅僅是“XFire Jar檔案(Jar of all XFire modules)”。
下載完成後,我們可以將下載的.zip檔案解壓縮到任意的資料夾中(後面的章節中使用%XFIRE_HOME%表示XFire框架的安裝目錄),
解壓縮後
api目錄
api目錄中是XFire框架中所有類(class)對應的API文檔,為開發者使用XFire完成套用開發提供幫助。
examples
examples目錄中包含了所有隨XFire二進制包發布的實例,包括這些實例的原始碼和相關Web套用配置內容。
lib目錄
lib目錄中包含XFire運行所需要的外部支持類包(.jar檔案),可以根據不同項目所需的XFire特性選擇所需要的支持類包。保守的方法是在Web項目中包含所有的外部支持類包(.jar檔案)。
manual
manual目錄中包含有XFire框架的幫助文檔,開發者可以從這些幫助文檔中學習更多運用XFire框架實現SOA的知識和技巧。
modules
modules目錄中包含了XFire框架根據不同特性分別編譯的二進制包檔案。發布基於XFire框架的Web項目時,可以選擇使用該目錄下的所有.jar檔案,也可以選擇XFire-all-1.2.6.jar檔案。
XFire-all-1.2.6.jar
XFire框架的二進制包檔案,包含了全部的模組(modules)。
LICENSE.txt
LICENSE.txt檔案中包含了XFire框架的授權協定。
NOTICE.txt
README.txt
這兩個檔案中包含了XFire發布時的一些有用的信息。
Servlet
概述
XFire - XFire框架支撐環境:XFire框架是一種基於Servlet技術的SOA套用開發框架,要正常運行基於XFire套用框架開發的企業套用,除了XFire框架本身之外,還需要JDK和Servlet容器的支持。
JDK版本
XFire支持非常多的特性,其中不同的特性對JDK版本的要求有所不同,比如如果項目中選擇基於JSR181標準發布Web服務,我們就需要選擇JDK5或者以上版本,如果僅僅選擇將Web服務綁定到最簡單的POJO,我們只需要選擇JDK1.4版本即可。
JDK各版本均可以在java.sun.com網站上下載,如何安裝JDK請參考SUN公司的相關技術文檔和JDK的幫助文檔。
Servlet
XFire是一種基於Servlet技術的SOA套用開發框架,需要Servlet容器的支持。XFire支持在多種Servlet容器中運行,包括Websphere、Weblogic、TOMCAT等。為了說明的簡單,我們選擇使用TOMCAT(版本5.0.30)作為XFire的運行容器,所有配置過程和發布步驟的說明也均是針對TOMCAT,如果讀者使用TOMCAT之外的其它Servlet容器或者選擇了TOMCAT的其它版本.
TOMCAT各版本均可以在tomcat.apache.org網站上下載,如何正確安裝TOMCAT伺服器請參考TOMCAT伺服器的幫助文檔。
xalan
XFire需要xalan項目的支持,然而1.2.6版本中並沒有帶有相應的jar檔案,因此請訪問xml.apache.org,下載xalan項目的二進制包。
XFire
概述
XFire - XFire套用配置:前面的章節中我們下載和安裝了XFire安裝包和所需要的支持環境,我們開始學習如何從零開始創建XFire套用開發環境。下面的所有配置過程和發布步驟均針對TOMCAT(版本5.0.30)伺服器,如果選擇其它的Servlet容器,下面的配置過程和步驟可能需要做出調整,請讀者根據實際Servlet容器的幫助文檔進行相應調整。
目錄
在%TOMCAT_HOME%/webapps目錄下創建新的Web套用目錄“XFire”
[注]其中的%TOMCAT_HOME%指向TOMCAT的安裝目錄。
在”XFire”目錄下創建”WEB-INF”目錄、
在”WEB-INF”目錄下創建”lib”目錄和”classes”目錄
在”WEB-INF”目錄下創建Web套用描述檔案”web.xml”,”web.xml”檔案的內容見清單1-1。
清單1-1WEB-INF\web.xml (servlet已定義)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- START SNIPPET: webxml -->
<!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>
<!-- END SNIPPET: webxml -->
檔案
拷貝%XFIRE_HOME%/lib目錄下所有檔案到“1、創建Web套用目錄和基本元素”中所創建的”lib”目錄下,將%XFIRE_HOME%/XFire-all-1.2.6.jar檔案也拷貝到“1、創建Web套用目錄和基本元素”中所創建的”lib”目錄下。將xalan安裝包中的所有jar檔案和所需要的支持jar檔案拷貝到相同的”lib”目錄下。
[注]為了減少拷貝的jar檔案的數目,開發者可以根據項目的需要選擇需要拷貝的jar檔案,而不是全部拷貝,如何根據需要選擇拷貝合適的類包檔案請訪問XFire站點。
Servlet
修改web.xml檔案,在其中增加如下Servlet定義內容。
發布檔案
4、創建XFire框架的服務發布檔案services.xml;
在“1、創建Web套用目錄和基本元素”中創建的classes目錄下新建目錄”META-INF\xfire”;
在步驟a)中新建的”xfire”檔案目錄下創建新檔案services.xml,檔案的默認內容如清單1-2。
清單1-2WEB-INF\classes\META-INF\xfire\services.xml
編輯本段 回目錄 XFire - 參考資料:訪問XFire框架用戶指南可以獲得更多關於XFi
re的使用幫助。
訪問XFire的Eclipse外掛程式可以獲得關於XFire提供的Eclipse外掛程式的更多信息。
Web服務
XFire 框架中,我們有兩種方式將 POJO 發布成 Web 服務:
一種方式是直接使用 Web 服務接口和 Web 服務實現類(POJO)來發布; 另一種方式是基於 JSR181 標準和注釋技術將被注釋的 POJO 發布成 Web 服務; 下面的章節中我們將學習使用第一種方式來完成 POJO 的 Web 服務發布。我們將使用經典的 ”Hello World!”例子來演示將 POJO 發布成 Web 服務所需要的步驟,不過我們不再是簡單的訪問一個 Java 方法來輸出 ”Hello World!”字元串,而是轉為在 SOA 環境下實現:Web 服務客戶端通過訪問伺服器端發布成 Web 服務的 POJO 獲得返回的 ”Hello World!”字元串後輸出到客戶端的控制台上。
將 POJO 發布成 Web 服務的基本步驟如下:
創建 Web 服務接口,聲明該 Web 服務對外暴露的接口; 創建 Web 服務實現類,為 Web 服務接口提供實現; 修改 XFire 框架的服務發布檔案 ---- services.xml,將 POJO 發布成 Web 服務。