本文仅是学习笔记记录。
背景:在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();
}
}
}