EAS webservice串用户、串数据中心问题

一些刚开始进行webservice开发的用户,往往会碰到串用户、串数据中心的问题。相关问题表现为webservice切换用户、数据中心后登陆,但实际登陆的用户还在切换前的用户、数据中心。导致系统会报诸如 没有权限、未找到用户之类的报错,或者导入的数据不正确。
   相关问题为未启用安全模式,系统调用前面的登陆返回信息引起。解决办法就是启用webservice安全模式。启用安全模式参考附件文档。


如何安全性启用


一、修改eas\Server\eas\server\profiles\server1\config\webservice.propetties文件
    isRomoteLocate=false
 

二、修改参数后,webservice调用端需要把登录返回的session传过去,

java调用示例如下,其它语言调用参考

 EASLoginProxy  proxy =null;
   WSContext context = null;
    try {
    //登录
    proxy = new EASLoginProxyServiceLocator().getEASLogin();
    context= proxy.login("kdjgf","","eas","zs70sp5","l2",1);
    //具体业务调用
    String[][] vouchers= null;
  WSGLWebServiceFacadeSrvProxy proxyWS= null;


   proxyWS = new WSGLWebServiceFacadeSrvProxyServiceLocator().getWSGLWebServiceFacade();
    //设置登录返回的session在soap头
    ((Stub) proxyWS).setHeader("http://login.webservice.bos.kingdee.com","SessionId",context.getSessionId());
   vouchers = proxyWS.getVoucher("001","2008","5",0);


   } catch (ServiceException e) {
     e.printstacktrace();
   } catch (remoteexception e) {
     e.printstacktrace();

   }

.net 语言调用

对于net代码k2可参考http://blog.sina.com.cn/s/blog_567100f90101a0py.html进行修改(不能直接用,这里用了ChildElement,多了一级,修改要去掉这一级

目前是同事使用.net语言封装了报文,并封装成.dll文件,供大家使用,具体如下:

调用方法如下:


       static void Main(string[] args)

       {

            string baseUrl =EasyConfig.UserData.GetNodeText("eas_services_url");

            var setting =EasyConfig.UserData.GetDict(EasyConfig.UserData.GetNodeText("eas_env"));

            //前面代码获取登录配置信息

            var voucherService = newEASVoucherLib.VoucherService(

                baseUrl,  //服务器url:http://10.2.1.144:6888/ormrpc/services,就是把后面具体的登录或导入凭证service前面公共的部分

               setting["userName"],  //下面参数参考调用登录EASLogin方法的参数

               setting["password"],

                setting["slnName"],

                setting["dcName"],

                setting["language"],

               Convert.ToInt32(setting["dbType"]));

            var voucherArr = newEASVoucherLib.WSWSVoucher[2];

            //...构造凭证对象

 

            //调用方法1

            using (voucherService)

            {

               voucherService.ImportVoucher(voucherArr,0);

            }

            //调用方法2

            try

            {

                voucherService.ImportVoucher(voucherArr,0);

            }

            finally

            {

                //必须调用dispose方法执行logout退出登录

                voucherService.dispose();

            }

       }


如需封装文件,请单独联系我,这个文件上传不了,请知晓!

相关文章

1.使用ajax调用varxhr;functioninvoke(){if(window.ActiveXO...
               好不容易把WebService服务器...
1新建一个工程项目用来做服务端增加一个MyService1类文件pac...
packagecom.transsion.util;importjava.io.BufferedReader;i...
再生产wsdl文件时重写描述文件1usingSystem;2usingSystem.Co...
一般情况下,使用eclipse自带的jax-ws生成webservice会自动生...