1. 程式人生 > >EAS webService介面開發(借鑑BOSwebservice釋出流程)

EAS webService介面開發(借鑑BOSwebservice釋出流程)

本文僅是學習筆記記錄。

背景:在eas內填寫的流程申請單根據呼叫OA介面建立單據,OA稽核完後需要把狀態傳給EAS,顯示單據已稽核。

BOS Facade的命名規範是:首字母大寫,以“Facade”結束。

新建Facade檔案  在BOS Studio,開啟“包分類”檢視。注意命名規則,選中新建的Facade 右鍵選擇 釋出WebService

彈出釋出webservice嚮導

編輯webservice配置檔案

點選完成後,在本地D:webservice下有你剛才釋出的webservice程式碼和wsdl檔案。同時也要釋出Facade檔案,在java檢視重新整理。並且把生成的XXXSrvProxy.java檔案copy到對應的包下

找到解決方案的runtime\server\deploy\eas.ear目錄,用解壓縮軟體開啟web.war,進入WEB-INF目錄,把生成的wsdl檔案copy到web-INF下, 並且把生成的wsdl檔案下的 <service name=''>copy到server-config.wsdd 內

測試是否正確,

下載WSDL檔案,在eclipse 內新建web工程,把wsdl檔案copy到新建web工程下,選中檔案>>webservice>>generate client 生成測試程式碼

測試介面程式碼是否正確,測試前先登入

呼叫成功。關於登陸引數設定,資料中心我找了很久,後來登入除錯原始碼才知道是這個。無意間發現工程下存在資料中心。

到此算成功了,把釋出好的程式碼copy到weaver工程下,OA迴轉單據呼叫即可。

登陸程式碼:

客戶端呼叫介面程式碼示例:

public class te {
public static void main(String[] args) {
try {
           //通過WebService登入EAS
           EASLoginProxyServiceLocator loginLocator = new EASLoginProxyServiceLocator();
           EASLoginProxy loginProxy = loginLocator.getEASLogin();
           System.out.println("------ 開始登入伺服器 .... ");
           WSContext context = loginProxy.login("user", "kduser", "eas", "ky", "L2", 0);
           System.out.println("------ 登陸成功,SessionID:" + context.getSessionId());
           
           //  通過OAScrapFacade WevService獲取資訊
           WSOAScrapFacadeSrvProxyServiceLocator accountLocator = new WSOAScrapFacadeSrvProxyServiceLocator();
           WSOAScrapFacadeSrvProxy accountProxy = accountLocator.getWSOAScrapFacade();
           String result = String.valueOf(accountProxy.updateStatus("tEIAAACgrNCK1R", "4"));
           System.out.println("測試結果" + result);

       } catch (ServiceException e) {
           e.printStackTrace();
       } catch (RemoteException e) {
           e.printStackTrace();
       }
}
}