关于注册用户同步失败提示:ClassCastException: com.apusic.naming异常说明

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

关于注册用户同步失败提示:ClassCastException: com.apusic.naming异常说明

如附件图所示,在线同步用户报错

image.webp

查看报错堆栈如下:

Caused by: java.lang.ClassCastException: com.apusic.naming.jndi.CNContext cannot be cast to javax.sql.DataSource

at com.kingdee.bos.framework.ejb.EJBUtils.ensureDataSource(EJBUtils.java:140)

at com.kingdee.bos.framework.ejb.EJBUtils.getConnection(EJBUtils.java:92)

at com.kingdee.eas.base.permission.app.util.interior.LicenseUseSrvSingletonManager.mergeOtherDBUserLicenseGroup(LicenseUseSrvSingletonManager.java:340)

at com.kingdee.eas.base.permission.app.util.interior.LicenseUseSrvSingletonManager.getGroupsFromUserLicenseGroup(LicenseUseSrvSingletonManager.java:318)


分析:

经查看代码可知,该配置项是从eas/server/profiles/server*/config/bosconfig.xml中取值,故需先检查该配置文件下的参数,如下图所示

image.webp


如上图所示可以看出,此配置文件不存在问题,只配置了一个数据中心,故需检查eas\server\properties 的datacenter.xml文件是否正确

image.webp

上述文件也没有问题,故查询分析器运行以下服务端脚本排查是否加载到其他数据库信息:com.kingdee.bos.framework.ejb.EJBFactory.getQueryDataSources()

参考脚本:

image.webp


从上图可以看出存在test0208数据库,故需移除此数据中心


解决措施:

客户端直连server1运行以下服务端脚本

image.webp


参考脚本:

var clazz = java.lang.Class.forName("com.kingdee.bos.framework.ejb.EJBFactory");

 var field = clazz.getDeclaredField("queryDSCache"); 

field.setAccessible(true); 

var map = field.get(clazz); 

map.remove("test0208");


再次同步成功

image.webp






关于注册用户同步失败提示:ClassCastException: com.apusic.naming异常说明

如附件图所示,在线同步用户报错查看报错堆栈如下:Caused by: java.lang.ClassCastException: com.apusic.naming.jndi.CNContext cann...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息