使用Xfire實現Web Services,作業應當包括相關的實現軟件代碼以及對應的WSDL。
MyEclipse 8.5,XFire 1.2.6,weblogic 11g/Tomcat
XFire下載地址:http://xfire.codehaus.org/Download,下載時選擇Binary Distribution in zip package (xfire-distribution-1.2.6.zip),解壓縮之後lib文件夾中包含了所有的jar文件。
Service創建
1、新建Service項目:File—New—Web Service Project,項目名稱為“HelloWorldService”。在Framework中選擇XFire,雖然已經廢棄,但是可以導入自己下載的lib文件使用,然後Next—Next—Next—finish,均默認,則項目創建成功。
2、導入xfire的外部jar。將xfire解壓縮後目錄下\xfire-distribution-1.2.6\xfire-1.2.6\lib下所有jar以及\xfire-distribution-1.2.6\xfire-1.2.6下的xfire-all-1.2.6.jar,全部拷貝到項目文件夾\MyEclipse\HelloWorldService\WebRoot\WEB-INF\lib下。
3、創建Service類。src下新添一個package,名為“server”;server包下新建一個class,名為“Hello”,添加代碼如下。該class實現一個簡單的HelloWorld程序,帶了一個字符串類型參數,返回一個字符串。
package server;
public class Hello {
public String sayHello(String name){
return name+"成功!";
}
}
4、創建Service。項目名稱右鍵—New—Other—Web Services—Web Service,--Next。(每)
在Strategy選擇Create web service from java bean,--Next。
Service name也取為“HelloWorldService”,實現方式選擇java bean implementation class only,Service impl.class則選擇剛才創建的server.Hello,--Next--finish。
(也可以選擇第一個單選框,建一個接口和繼承類,這裡不舉例 )
5、weblogic或 tomcat 部署 後(跟部署一般的web項目一樣),在浏覽器中輸入http://localhost:8888/HelloWorldService/services/HelloWorldService?wsdl ,
(分別代表服務器名稱:端口號/項目名稱/services/服務名稱),則可以看到自動生成的wsdl文件。如果失敗,試試http://localhost:8888/WebRoot/services/HelloWorldService?wsdl 。
以上的過程就是把服務器端做好了,接下來就要做客戶端了。
客戶端創建
1、客戶端的配制以及調用有兩種方法:一種是自動生成一些代碼接口,然後直接調用;一種是手寫一些方法來進行調用。手寫代碼之前,一定要把http client library 的包加進來,以及一些相應的xfie的核心包,包有以下幾個:XFire 1.2 Core libraries,XFire1.2 HTTP Client libraries,XFire1.2 JaxB2 libraries。加入了以上的三個包以後,然後可以寫一個測試的main方法來進行測試調用服務方法。
2、這裡使用自動生成客戶端的方法,先導入外部jar。項目右鍵---Properities—java bulid path----Libraries—add External JARs,把Xfire中lib包下的jar都導入。
3、創建一個新的Client項目:File—New—Web Service Project,項目名稱為“HelloWorldClient”,Framework同樣選擇Xfire,--Next—Next—finish,注意在配置Library的時候,要勾上XFire 1.2 Core libraries,XFire1.2 HTTP Client libraries,XFire1.2 JaxB2 libraries這幾個包,如下:
4、創建一個web service client:項目名稱右鍵—New—Other—Web Services—Web Service Client—next—next,在WSDL URL下輸入剛才http://localhost:8080/HelloWorldService /services/HelloWorldService?wsdl,然後next---finish。
5、客戶端項目文件夾下自動生成出來了一些有用的接口, 一個方法一個接口, 就可以直接拿來用了。
在HelloWorldServiceClient的main方法中,調用下service中的SayHello方法OK!