讲怎么对接之前先让我吐槽一下,对接金蝶要安装金蝶系统,我自己安装了一次没安装成功,金蝶公司的给我安装了七次也没有成功,最后发给我一个镜像,里面有安装好的金蝶系统才勉强可以,后面的就是这种坑了,对你爱理不理的!对接文档三张截图对接去吧!有些参数不清楚问一下结果对方也不清楚,有这么不负责任的公司吗!我这块需要java对接结果人给了份C#的代码尼玛坑啊!后来人又发了个用CXF生成的!搞了好久!后来问对方,结果对接的资料什么的全是百度出来的!妈的就这样付什么对接费。全是坑!不扯了!先给大家讲一下对接吧!其实连通金蝶不难!
金蝶系统安装好之后:
1,、在本地安装一下apache-cxf,我会在我的GitHub上上传一下大家可以去下载或去CSDN上下载,这个解压一下然后和JDK一样配置一下环境变量。
2、到cxf的bin目录下执行下面的命令:wsdl2java -d D:\\demo -client http://127.0.0.1/KDWEBSERVICE/VoucherData.asmx?wsdl 我这块是将生成的代码放大D盘的demo目录下, 后面就是你要生成的方法的访问路径,路径的话,只要你安装好金蝶系统,然后访问http://127.0.0.1/KDWEBSERVICE/这个路径就可以查看他的方法了。
3、代码生成好之后我们可以先去数据库里面查一下账套的ID,账套表:t_ad_kdAccount_gl 凭证表:t_voucher ,代码中会生成两个方法一个查询一个添加,我们可以先试下查询的方法是否能查询出来,能查询出来说明方法是通过的!
部分代码:
System.out.println("Invoking query...");
int _query_iAisID = 2;//账套ID
java.lang.String _query_strUser = "Administrator";//用户名
java.lang.String _query_strPassword = "";
int _query_iPerCount = 10;
java.lang.String _query_strFilter = "";
java.lang.String _query_strTimeStampVal = "";
javax.xml.ws.Holder<java.lang.String> _query_strTimeStamp = new javax.xml.ws.Holder<java.lang.String>(_query_strTimeStampVal);
javax.xml.ws.Holder<com.kingdee.voucherdata.ArrayOfVoucher> _query_queryResult = new javax.xml.ws.Holder<com.kingdee.voucherdata.ArrayOfVoucher>();
javax.xml.ws.Holder<java.lang.String> _query_strMaxTimeStamp = new javax.xml.ws.Holder<java.lang.String>();
javax.xml.ws.Holder<java.lang.String> _query_strError = new javax.xml.ws.Holder<java.lang.String>();
port.query(_query_iAisID, _query_strUser, _query_strPassword, _query_iPerCount, _query_strFilter, _query_strTimeStamp, _query_queryResult, _query_strMaxTimeStamp, _query_strError);
4、这块我单独测试是放在生成的项目里面测试的,整合到我们项目里的时候出现了一点问题,jar包冲突结果冲突解决了之后因为项目里面的一个jar包把调用的一个方法给重写了,项目的jar我又不敢乱删,然后我想了一个别的方法,我搭建了一个springboot的小项目,然后我自己的项目调用这个项目,这个项目再调用金蝶的项目,完全可以!
代码和CXF会发布在GitHub上大家可以去下载!
GitHub地址:https://github.com/yanlingkong/