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();
}
}
}