s-HR二开私包里面的类冲突解决办法
现象:现场二开的单据,反审核按钮,成功后会将单据状态置为未审批,而不是未提交,现场表示二开已经分析过,代码没有看出问题,之前反审核后都是可以置为未提交的,需要研发协助分析,请帮忙分配研发协助处理
简单分析了下,该二开采用的bos设计器进行建模,元数据上为新加方案,反审核按钮使用了父类(HRBillBaseControllerBean)反审核方法入口。
通过重写父类的反审方法_untiCheckBizBill来修改状态
分析过程:
1、确保没开启多语言,有可能多语言词条会影响,确认未开启
2、查询数据库,改状态和当前实现类设置的状态不一致
3、这个时候就怀疑重写的_untiCheckBizBill方法未生效,可能存在类冲突
ip和port缓存环境上真实的ip和端口执行
发现当前的类加载私包如下图:
发现目前内存中加载的类在私包jmvivo-cloudInterface.jar里面
然后下载jmvivo-cloudInterface.jar私包,用反编译工具查看类com.kingdee.eas.hr.affair.wageentry.app.SalaryEnrtyControllerBean的内容如下图:
发现此包的类里面没任何东西
而修改的代码真正私包在另一个私包sp_jmshr_lib.jar,反编译可以看到如下图内容:
4、综上分析,就是私包部署的类冲突
解决方案:
根据上面的分析得知,客户是需要的sp_jmshr_lib.jar里面的com.kingdee.eas.hr.affair.wageentry.app.SalaryEnrtyControllerBean
需要调整私包jmvivo-cloudInterface.jar,将jmvivo-cloudInterface.jar\com\kingdee\eas\hr\affair\wageentry整个目录删除,然后重启服务
重启后如果还有问题,可以继续循环第3步的操作和解决方案操作,看看是否还有其他私包冲突,直到问题解决位置。
s-HR二开私包里面的类冲突解决办法
本文2024-09-16 23:44:53发表“s-hr cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-shr-56541.html