現在java中開發webService的東東好像有2個:XFrie和AXIS,當然,還有SUN自己的JWSDP,可能還有很多,但是我就知道一個myeclipse5.5.1自己帶的XFrie1.2,當然了,實際的應用中也沒用過,寫出來就算是個參考吧。
XFire是一個免費的開源SOAP架構,它可以幫你快速開發基於Java的WebService應用。把你從繁瑣的WebService配置中解放出來,你不再需要瞭解WebService是如何具體運作的,你僅僅需要關注的是如何更好地實現你的商務邏輯。
那現在就開始我們的Xfire應用之旅吧,首先從xfire.codehaus.org網址下載Xfire,這裡我們選擇1.2.6版本。JDK我們選擇1.5版本,如果沒有你可以到SUN公司的官方網站(java.sum.com)上下載,Web伺服器這裡我們選擇Tomcat,你可以到tomcat.apache.org網站上下載最新的版本。
一 安裝Tomcat
所有配置選擇預設,安裝完成後Tomcat的根目錄一般為:C:/Program Files/Apache Software Foundation/Tomcat 6.0,使用資源總管,導航到Tomcat的服務類別目錄,C:/Program Files/Apache Software Foundation/Tomcat 6.0/wabapps 在下面建一個你自己應用目錄,目錄名自取。我這裡命名為bos。
二 建立業務功能
為簡單起見,這裡我們使用常規的HelloWorld。首先定義一個interface,此interface用於對外提供服務,可以說是對外的一個介面吧!然後再為該interface實做一個實現class.具體代碼如下:
//interface
package com.hk.bos.xfire;
public interface IHelloWorld {
public String showMessage(String message);
}
//implement class
package com.hk.bos.xfire;
public class HelloWorld implement IHelloWorld {
public String showMessage(String message){
System.out.println("the client message : "+message);
}
}
好了業務功能建立完成,現在我們就開始Xfire的配置吧!
三 Xfire的配置
回到我們第一步建立的應用目錄,本例為:C:/Program Files/Apache Software Foundation/Tomcat 6.0/wabapp/bos.
在此目錄下建兩個檔案夾:classes 和 lib,建完後再建一個名為web.xml的檔案。此檔案的內容如下:
<?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>
看出什麼來了嗎? 對,這就是Servlet的標準配置。它的意思就是將所有的首碼為:http://yourserver:port/bos/servlet/XFireServlet/ 和 http://yourserver:port/bos/services的請求交由XFireServlet處理,而這個Servlet就是Xfire已經為我們開發好的,我們不必要做任何修改。
將你應用所要用的lib包(包括Xfire的所要用到的所有支援包)全部Copy到剛才所建的lib目錄下。
再進到剛才所建的classes 目錄下,在此目錄下建以下層級目錄META-INF/xfire目錄,再在此目錄中建一個名為services.xml檔案。檔案內容如下:
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorld</name>
<namespace>http://www.boshk.com/HelloWorld</namespace>
<serviceClass>
com.hk.bos.xfire.HelloWorld </serviceClass>
<implementationClass>
com.hk.bos.xfire.HelloWorld
</implementationClass>
</service>
</beans>
這是XfireServlet所要使用到的配置資訊,表明資訊不用我說你也應該知道了,其中name表示單個Service的名稱,外部將使用此名稱調用。namespace名字空間。serviceClass服務類,這是我們前面建的對外服務interface。implementationClass服務實現class。當然如果你需要多個Service,僅僅只要在這裡加多一個service節點罷了。夠簡單的吧 : )
下面我們就來測試一下吧! 啟動Tomcat服務。開啟瀏覽器輸入http://yourserver:port/bos/services/HelloWorld 。如果沒有出錯,這時網頁中會顯示一個完整的XML檔案,該XML包括供Client端調用的所有資訊。