2012年12月26日 星期三

JBoss SOA Web Service - Math Sample

於 JBoss SOA 開發及部署 Sample Web Service - MathWS,為下一篇 RiftSaw Sample 做準備,MathWS Sample 很單純的只做 +、-、X、/ 的運算。

準備執行環境

只單純部署 MathWS 不需要 MySQL ,但因 JBoss SOA 的環境已有其他設定,因此將 MySQL 列入,不同的環境可考慮將 MySQL 排除。 JBoss Web Services 只是列出版本 SOA Server 已包含在內。
  • Eclipse Java EE IDE 3.6.1(Helios)+
  • JBoss Tools Plugin 3.2+
  • JBoss SOA Server 5.0.2.GA+
  • JBoss Web Services 3.1.2.SP3_CP01+
  • MySQL Server 5.1



JBoss Server Web Service Configuration on Eclipse

  1. 於 Eclipse 設定 JBossWS Preferences,Window -> Preferences -> Web Services -> JBossWS Preferences -> Add -> New JBossWS Runtime,依照下圖輸入 Name:可辦識的名稱,選擇 Version 也就是 JBoss Web Services 的版本,剛剛有提過為 3.1.2 但這裡只有二個選項2.0/3.0因此選擇 3.0 ,Home Folder 輸入 JBoss SOA Home 的路徑,點選 Finish

  2. 接著設定 Window -> Preferences -> Web Services -> Server and Runtime,依照下圖選擇 Server runtime: JBoss AS 5.0 , Web service runtime: JBossWS ,點選 OK

  3. 預設已在 Eclipse 新增 JBoss 5.0 Runtime Server 的設定,如未設定可參考其他篇的說明,於 Eclipse Servers View 點選二次 JBoss 5.0 Runtime Server ,可開啟 Runtime Server 的設定,點選 Deployment 再點選 Use the JBoss deploy folder ,接著存檔。

  4. 這是說在前頭的注意事項,在部署及啟動 JBoss 時才會發生,第3點主要是修改從 Eclipse 啟動 JBoss Server 的部署方式,這個 Sample 如果照預設的部署在 Eclipse workspace ,會有 Deployment error:is already installed ,而修改為 Use the JBoss deploy folder 後,需將之前部署在 workspace 的 Sample Project 清除否則會有同樣的 Deployment error ,路徑如下:workspace\.metadata\.plugins\org.jboss.ide.eclipse.as.core\JBoss_5.0_Runtime_Server1327033118897\deployJBoss_5.0_Runtime_Server 後的序號會有不同。


Create & Deployment Sample Web Service - MathWS

  1. 在 Eclipse - Create a Dynamic Web Project -> Next ,輸入 Project name:mathWS 其他設定則照預設值,參照下圖 Dynamic Web Project ,點選 Next

  2. 接著照預設值 Java -> Next -> Web Module -> Finish 如下面二個畫面。

  3. 新增 Java Class ,如下輸入 Package:math.add 、 Name:AddService ,點選 Finish

  4. 接著如下修改 AddService.java
    package math.add;
    
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    
    @WebService(name = "MathAdd", serviceName = "Add")
    public class AddService {
        @WebMethod
        public double add(double a,double b){
            System.out.println(a + "+" + b + " = " + (a+b));
            return a+b;
        }
    }
    

  5. Package Explorer -> AddService.java -> 點選右鍵 -> Web Services -> Create Web Services, 於 Web Services 選擇 Service implementation:math.add.AddService ,確認前一節的設定 Configuration - Web service runtime:JBossWS,點選 Next

  6. 於 JBoss Web Service Code Generation Configuration - 確認WSDL及Web.xml都勾選 -> Next, 於 Server startup 點選 Start server ,部署 Web Service 及啟動 JBoss SOA(執行前確認前一節的第4點設定) 。

  7. JBoss 啟動後點選 Finish, 於 Package Explorer 可看到部署後新增的部份,包含 WSDL file 及 ear ,因部署方式選擇部署於 JBoss SOA ,所以可於 %JBOSS_HOME% 看到 mathWSEAR.ear

  8. 接下來要建立 -、X、/ Service,方法一:重覆執行步驟3~6 ,方法二:於步驟3建立 SubtractService.javaMultiplyService.javaDivideService.java,重覆步驟 4b~5a 選擇其他三個 Service 建立 WSDL 及 Update Web.xml ,於步驟 5b 再 Start server,建立完成後則如下圖。

  9. 於 JBoss Web Services Console 查看部署後的結果, http://localhost:8080/jbossws/ -> 帳/密:admin/admin -> View a list of deployed services ,可看到4個 Service 部署後的訊息,下圖為截取的畫面,點選 Service URL 可看到 wsdl file。


Create & Test MathWS Web Service Client

  1. 利用 soapUI Tool 測試 MathWS ,這裡只測試 AddService 其他的請自行驗證,12+34=46 測試結果如下。

  2. JBoss Log 如下。


參考文章如下:
JBoss SOAP Web Services User Guide
使用JBoss+Eclipse撰寫Web Service程式
JEAP 6 - 建立Web Service

沒有留言:

張貼留言