电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

Webservice EASLogin登录接口说明(本文章不再更新维护,请移步新文章)

来源:金蝶云社区作者:金蝶2024-09-167

Webservice EASLogin登录接口说明(本文章不再更新维护,请移步新文章)

由于运营调整,本文章不再更新维护,具体的接口说明请移步新文章

https://wenku.my7c.com/article/173164492883473920


请确认调用方用的端口是eas的具体实例端口还是群集端口,实例端口参照“安全模式”方案实施,群集端口一定要用“高可用webservice方案技术方案(连接集群端口)”方案。 


由于网页排版问题,如果不全,详细信息请下载附件中文档查看  。


 一,安全模式(只适用实例端口注意:85版本以后实例端口不能是实例1
1)启用安全模式。修改eas\Server\eas\server\profiles\server1~N\config\webservice.propetties文件,另起一行,添加参数如下:
    isRomoteLocate=false   (注意参数名和值不要写错,可直接复制过去)
    是否启用成功测试方法(群集端口同用):
    客户端set-url.bat 端口连接设置成与webserivce调用对应的实例或集群的端口一致,然后在查询分析器分步执行服务端脚本:      com.kingdee.bos.webservice.WSConfig.init()  --调用webservice.properties方法初始配置      com.kingdee.bos.webservice.WSConfig.getRomoteLocate()  --获取安全模式设置参数,返回result:false就是成功启用了安全模式。否则失败,请检查安全模式的配置文件。


2)修改参数后,webservice调用端需要把登录返回的session传过去,java调用示例如下,其它语言调用参考EASLoginProxy  proxy =null;
   WSContext context = null;
   //登录
   proxy = new  EASLoginProxyServiceLocator().getEASLogin();
   context= proxy.login("kdjgf", "",  "eas", "zs70sp5", "l2", 1);
   if(context. getSessionId() == null ){
       throw new Exception(“login fail”);
   }
   //具体业务调用
   String[][] vouchers= null;
   WSGLWebServiceFacadeSrvProxy proxyWS= null;
   proxyWS = new  WSGLWebServiceFacadeSrvProxyServiceLocator().getWSGLWebServiceFacade();
   //设置登录返回的session在soap头 "http://login.webservice.bos.kingdee.com"是固定的
   ((Stub) proxyWS).setHeader("http://login.webservice.bos.kingdee.com","SessionId", context.getSessionId());

      其本质是,每次WEBSERVICE 访问,必须带上相关的 SessionID 信息,如下红字部分。系统将根据 SOAP头中的SessionID 信息,获取相关的上下文信息。


 
     
 
 
     
         
         
     
 

补充,donet/C#调用方式,需要部署私包sp_SOAPHead_forDoNet_V15.jar(文末附件提供),部署路径:server/lib/sp
[table]
[tr][td=641]1). 生成代理类,代理类中加入头信息变量定义public KDSessionId SessionId;//头信息要与接口中的相对应
2). 代理类中在需要调用的方法上加上参数[SoapHeader("SessionId")] //与类中定义的头同名
3). 定义头信息类      //      // 头信息,需要与接口定义的头同名      //      public class KDSessionId: SoapHeader      {          public string SessionId;//变量名与接口定义同名      }4). 调用      WSGLWebServiceFacadeSrvProxyService webuser= new WSGLWebServiceFacadeSrvProxyService();      webuser.SessionId = new KDSessionId() {SessionId = wscontext.sessionId };      webuser.deleteVoucher("03.02","2016.01", "1", "1");

二,高可用webservice方案技术方案(适用集群端口和实例端口)
1. 启用安全模式。修改eas\Server\eas\server\profiles\server1~N\config\webservice.propetties文件,另起一行,添加参数如下:
    isRomoteLocate=false   (注意参数名和值不要写错,可直接复制过去)
    2. 在服务端server-config.wsdd(路径:eas/server/deploy/eas.ear/web.war/WEB-INF)的全局参数部分,添加scope的范围:         保证服务端返回设置jsessionid的cookie。如果缓存更新不及时,手动删除web的缓存目录/apusic/domains/server(1~N)/deploy/EAS/tmpfiles。
3,(java)      在webservice客户端调用处设置call.setMaintainSession(true); 保证axis自动携带cookie到服务端     注意,调用业务方法的时候使用登录接口时的同个call实例,不要新建。
例如:[code]//调用登陆接口
Service s=new Service();
Call call=(Call)s.createCall();
call.setOperationName("login");
call.setTargetEndpointAddress("http://localhost:8080/ormrpc/services/EASLogin?wsdl");
call.setReturnType(new QName("urn:client","WSContext"));
call.setReturnClass(WSContext.class);
call.setReturnQName(new QName("","loginReturn"));
//超时
call.setTimeout(Integer.valueOf(1000*600000*60));
call.setMaintainSession(true);
//登陆接口参数
WSContext rs=(WSContext)call.invoke(new Object[]{"am", "", "eas", "bos80demo", "l2", Integer.valueOf(0)});
if(rs. getSessionId() == null){
       throw new Exception(“login fail”);
}
System.out.println(rs.getSessionId());
//清理
call.clearOperation();
//调用业务接口
call.setOperationName("addTest");
call.setTargetEndpointAddress("http://localhost:8080/ormrpc/services/WStettreeFacade");
//call.setReturnType(new QName("urn:lang.java","String"));
//call.setReturnClass(String.class);
call.setRe

Webservice EASLogin登录接口说明(本文章不再更新维护,请移步新文章)

由于运营调整,本文章不再更新维护,具体的接口说明请移步新文章https://wenku.my7c.com/article/173164492883473920 请确认调用方用的端...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信