本文描述了一位新人在进行SHR项目开发时遇到的搭建开发环境、导入解决方案及解决版本不兼容等问题的过程。通过EAS测试服务器导入解决方案时遇到模块安装错误,后通过检查日志发现是版本不兼容问题,通过修改Oracle配置文件解决了该问题。最后,介绍了更优化的导入解决方案方法。
作为新人,第一次做SHR项目的开发,有点兴奋。首先当然是搭建开发环境了,客户给了个EAS测试服务器的网址,
版本是EAS 8.5 sp1,在BOS里业务建模工具视图里,反键-导入解决方案,从远程服务器导入,服务器地址就使用
客户给的EAS测试服务器的IP,用户名和密码都是默认的admin,方案选择GUI开发,WEB应用开发,如果要做接口,
还要勾选WEBService应用开发;下一步,选择一个账套,完成;这里务必要保证EAS服务器的BIM先启动了,
并且绑定IP,不然会报错。导入时,报模块安装有错误
表象:如下图所示,在”更新解决方案”页签中显示相关导入解决方案的任务已经完成,
但是左侧的”业务单元管理”中并没有出现导入的解决方案。且在”更新解决方案”页签中存在报错,
一般报错会显示下载某个文件是异常,然后后面跟着一串无法识别的乱码文件名。
比较常出现的文件夹一般都是在ctrlhome下方的部分业务文件中
(如中文名的套打文件,投资理财单.r1-print);
解决方案:判定文件是否为服务器必备文件,可以根据报错目录,找到对应的服务器文件,备份后从服务器移除,
然后再重新进行导入操作,直到导入完成。
终于把解决方案导入到bos的工作空间了,并且在BIM的视图也看得见项目工程了,此时点击测试设置却遭遇当头一棒,
根据错误信息的提示,找到BOS的日志,
错误日志文件位置,在解决方案所在的工作空间名为bos.log的日志文件,打开可以看到详细的报错信息。如下图
打开bos.log
百度了下ORA-28040,其实根本原因还是:版本不兼容 两个版本的jdk 版本不一致
服务器上oracle是12C,本地客户端,额,不知道啥版本滴,反正没匹配上。
解决方案:
1.修改Oracle的配置文件:
文件位于Oracle 服务端安装的根目录;
D:\app\oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN的 sqlnet.ora文件里面,如果没有可以创建一个新的,
2.在sqlnet.ora文件里加入下面的参数
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER:控制可以连接到12c数据库的客户端版本(client —>orace 12c db )
SQLNET.ALLOWED_LOGON_VERSION_CLIENT:控制12c数据库可以连到哪些版本的数据库(orace 12c db —>其它版本的oracle db),例如:控制通过DB LINK可连接到哪些版本的oracle库。
该参数用来限制可以连接到数据库服务器上的最小客户端版本,比如设置值为10,即10g,11g等以上客户端版本可以连接到数据库服务器上。在不是指的时候是用默认值的,导致低版本连接不上高版本的数据库。
说白了解决兼容性问题就是让高版本的额数据库服务也能让低版本的额数据库来连接。
3.重启需要连接这个数据库的客户端的LISTENER:
不用重启数据库或者监听,也不用重启应用。
对于BOS来说,直接点击测试连接就行了,然后奇迹就这样发生了
后记:
经过大神们的指点,导入解决方案有更优化的方式,直接从远程服务器导入速度太慢,可先将远程服务器的eas\server文件夹拷贝到本地(先停止EAS服务器,因为会有很多文件在运行时无法拷贝),再从本地导入,这样就快多了!
推荐阅读