第2部分: 將業務整合項目從WebSphere Application Developer-IE v5.1遷移到WebSphere Integration Developer v6.0.1
本文是一個考慮開發組合應用程式的系列的一部分。組合應用程式整合現有的SOA服務並 建立能夠以不同的方式組合的新服務。我們最初使用WebSphere Application Developer IE v5.1開發了一個示範組合應用程式,其中使用了WebSphere Business Integration SF作為其 運行時(請參見本系列的第1部分)。隨著WebSphere Process Server v6及其對應的開發工具 WebSphere Integration Developer v6的發布,一種基於服務元件體繫結構(Service Component Architecture,SCA)的新編程模型出現了,從而要求將構件從遺留編程模型遷移 到新的編程模型。下面我們將與您分享在此遷移過程期間學習到的一些重要教訓。
引言
本文描述將原型組合應用程式從WebSphere Application Developer-IE v5.1遷移到 WebSphere Integration Developer v6的一些問題和解決方案。我們將介紹的主要問題包括 WSDL綁定、WSDL介面、XSD定義和商務程序執行語言(Business Process execution Language ,BPEL)編碼。儘管WebSphere Integration Developer v6具有功能強大的遷移嚮導,但我們 發現可以對簡單項目進行自動遷移。然而,更複雜的BPEL應用程式將需要對遷移過程的更深 入瞭解。有關詳盡的遷移注意事項,請參考WebSphere Integration Developer協助或 WebSphere Integration Developer/WPS資訊中心。
綁定的遷移問題
本系列中的第一篇文章確定了一些由一家銀行客戶發起的用例。“貸款申請”用例調用了 一個BPEL商務程序。該商務程序完成一系列調用服務來處理貸款的步驟。所調用的有些服務 使用了Java或EJB綁定。
Java綁定問題
WebSphere Integration Developer v6不支援WebSphere Application Developer-IE所生 成的WSDL中使用的原始Java綁定類型。服務/連接埠定義使用了某種Java類型。因此在WSDL中生 成了一個Java ClassName而不是一個端點地址。(請參見清單1)。
清單1. 帶Java綁定的WSDL
<service name="LoanTrackingServiceProxyPortTypeService">
<port binding="tns:LoanTrackingServiceProxyPortTypeJavaBinding"
name="LoanTrackingServiceProxyPortTypeJavaPort">
<java:address className="loantrackingservice.LoanTrackingServiceProxy"/>
</port>
</service>
如果將此類WSDL直接匯入SCA模組,那麼即使沒有異常或由WebSphere Integration Developer標記的錯誤,所產生的匯入也無法成功進行綁定(請參見圖1)。事實上,WebSphere Integration Developer V6僅支援帶SOAP綁定的Web服務匯入。因此,匯入的端點將保留為空白 ,從而在將模組部署到WPS並在我們嘗試調用它時導致運行時異常。
圖1. 帶Java綁定的WSDL匯入