部署CAS SSO时提示BEA-101017的解决方法
版权声明:本文为炎雨0927(heiyan_7)原创文章,非商用自由转载,请保持署名并注明出处,谢谢。
公司的统一权限管理平台是基于CAS的,由于接入的系统越来越多,近期需要再搭建一台weblogic集群的CAS,在搭建好之后,启动服务时,提示如下错误:
2016-12-29 15:48:44,795 DEBUG [org.apache.activemq.transport.InactivityMonitor] - <30003 ms elapsed since last read check.>
2016-12-29 15:48:51,593 INFO [org.jasig.cas.web.flow.InitialFlowSetupAction] - <Setting path for cookies to: /isc_sso/>
<Dec 29, 2016 3:48:52 PM CST> <Error> <HTTP> <BEA-101017> <[ServletContext@2130204450[app:isc_sso module:isc_sso path:/isc_sso spec-version:2.5]] Root cause of ServletException.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'casSamlServiceSuccessView': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.jasig.cas.web.view.Saml10SuccessResponseView
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:997)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:943)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
Truncated. see log file for complete stacktrace
Caused By: java.lang.NoClassDefFoundError: Could not initialize class org.jasig.cas.web.view.Saml10SuccessResponseView
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
Truncated. see log file for complete stacktrace
> 可以看到,错误码为BEA-101017,查了一些资料,遇到的错误码相同,但是现象和解决方法五花八门,有一种是提到了sam包冲突。由于部署的安装包与之前的单机环境相同,操作系统一致,只有weblogic是重新部署的。注意到日志中有org.jasig.cas.web.view.Saml10SuccessResponseView,而weblogic和cas sso的lib中都包含有sam的jar包,因此采纳了包冲突的解决方案。
操作步骤
- 进入weblogic的modules目录:
如/home/weblogic/Oracle/Middleware/modules,搜索包含sam的jar包,如com.bea.core.bea.opensaml2_1.0.0.0_6-2-0-0.jar、com.bea.core.bea.opensaml_1.0.0.0_6-2-0-0.jar,删除或重命名都可以。 - 停止AdminServer的服务,删除servers下除security外的目录及文件
- 重启AdminServer。
问题解决,定位过程比较折磨,结果是好的。
版权声明:本文为heiyan_7原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。