java实现SAP BO登录

  最近一个项目用到了SAP的businessObjects,需要进行二次开发,今天开发了登录接口,遇到了一些问题,进行了解决,现在分享一下。

  1、依赖jar包的添加

    bo登录需要用到一些jar包,具体在bo安装目录的\Tomcat55\webapps\VoyagerClient\WEB-INF\lib下,我们用到的版本是3.X,目录仅供参考。

  2、登录代码编写

     // ip:port, port一般是6400
        String CMS = "*.*.*.*:6400";
        // 登录的用户名
        String userID = "username";
        // 密码
        String password = "password";
        // 认证类型: secEnterprise
        String auth = "secEnterprise";
        IEnterpriseSession enterpriseSession;
        try {
            ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
            enterpriseSession = sessionMgr.logon(userID, password, CMS, auth);
            
            /* 其中createLogonToken(java.lang.String clientComputerName, int validMinutes, int validNumOfLogons)
               clientComputerName为使用这个token的客户端计算机名,空字符串表示该token可被任何客户端使用;
               validMinutes为token的有效时间(分钟);
               validNumOfLogons 表示该token允许被使用的最大次数。*/
            String token = enterpriseSession.getLogonTokenMgr().createLogonToken("", 1, Integer.MAX_VALUE);
        } catch (SDKException e){
            e.printStackTrace();
            return;
        }

  拿到token了之后就可以进行url的拼接,做其他操作了,如:http://10.6.4.170:8080/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&sType=wid&iDocID=AQa.zJ7BBUBAolv5NdN3X2A&lsSP_DATE=20180415&token=BIPRD0:6400@129477Jg4Sy5pocBTNao8qOGGws6j129475J1JhLhH8z4qO7A6adlV4R1hONEOFF

  3、报错说明

    登录时候一直报一个

      com.crystaldecisions.enterprise.ocaframework.OCAFrameworkexception$CommunicationError:尝试连接服务器BO1:6400时出现通信错误(FWM 01009)

      ......

    的错误,找了很多资料,ping BO1和telnet BO1 6400都可以通,最后发现,是BO1服务器上的hosts文件还有其他的主机名配置,后来把服务器上的hosts文件中的关于服务器的IP的配置拷贝到做项目的服务器上,就好了。

    所以这个问题解决要看服务器是否能ping通,端口是否可以访问,hosts文件是否需要配置。  

猜你喜欢

转载自www.cnblogs.com/effortn/p/10305316.html