在使用Portal与CAS结合进行稳定性测试时,Portal首页有两个需要单点登录的动态页面。并发数到15个时,CAS后台就会偶发性的抛出异常信息。内容如下:
2010-03-03 09:01:39,500 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/cas].[cas]] - Servlet.service() for servlet cas threw exception
java.lang.IllegalAccessException: Class ognl.OgnlRuntime can not access a member of class org.springframework.webflow.engine.impl.RequestControlContextImpl with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.reflect.Method.invoke(Method.java:578)
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:532)
at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:945)
at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:53)
at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121)
at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1657)
at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
at ognl.SimpleNode.getValue(SimpleNode.java:210)
at ognl.ASTChain.getValueBody(ASTChain.java:109)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
at ognl.SimpleNode.getValue(SimpleNode.java:210)
at ognl.ASTNotEq.getValueBody(ASTNotEq.java:49)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
at ognl.SimpleNode.getValue(SimpleNode.java:210)
at ognl.ASTAnd.getValueBody(ASTAnd.java:56)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
at ognl.SimpleNode.getValue(SimpleNode.java:210)
at ognl.Ognl.getValue(Ognl.java:333)
at ognl.Ognl.getValue(Ognl.java:310)
at org.springframework.binding.expression.support.OgnlExpression.evaluate(OgnlExpression.java:72)
at org.springframework.webflow.engine.support.BooleanExpressionTransitionCriteria.test(BooleanExpressionTransitionCriteria.java:58)
分析与解决
从异常信息判断,很可能是Spring Webflow框架或Ognl框架的问题。通过网络查找,在相关网站上发现有人遇到同样的问题,原因为Ognl动态调用RequestControlContextImpl类的方法时,没有访问权限,深层原理不明确。解决办法为将RequestControlContextImpl类的访问权限设为public。经测试后,确认问题已解决。
将spring-webflow-1.0.5.jar中的RequestControlContextImpl类反编译,对源码进行修改,将编译后的类,重新加入spring-webflow-1.0.5.jar.
原来类的定义为:
class RequestControlContextImpl implements RequestControlContext{
改为:
public class RequestControlContextImpl implements RequestControlContext{
分享到:
相关推荐
ISCAS89的测试向量文件,用于初始化电路,对电路程序功能进行测试
CAS入门测试工程
这是我自己写的一个简单的CAS测试的详细过程,有借鉴网上许多相关资料,也在许多容易出问题的地方做了标注。压缩包中还附有相关jar文件,也就不用大家费心到网上搜索下载了。
cas单点登录测试环境搭建步骤,很全面,供大家参考
zip中包含两个maven测试demo,demo引用cas服务端,直接导入然后tomcat7:run。就可以启动。cas服务端的包直接导入到项目中,启动tomcat即可。
H3C CAS云计算管理平台对外测试手册
H3C CAS系统维护 H3C CAS日志维护 H3C CAS案例集 H3C CAS主机异常问题定位介绍 H3C CAS系统变更要求 H3C CAS版本升级方案介绍 H3C CAS系统命令
使用Tomcat配置cas单点登录Sever和Client,包括生成的证书和已配置好的Tomcat工程,博客介绍链接:https://mp.csdn.net/postedit/80043654
cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x...
CAS单点登录,退出后ticket失效报出异常解决办法——换jar包 把客户端的 casclient.jar 包换成我的这个。
CAS协议,包括cas1.0和cas2.0的协议,cas 协议分为两部分,一部分是票据-ticket,一部分是url。
cas单点登录的例子,用maven方式管理,里面包手client端及server端,默认是用户名密码同名认证,可用第二种用数据库认证(已注释,打开就可以使用,需建对应的数据库)
cas6.x需要使用jdk11版本,目前cas5.3.15.1是8的最高版本,但是稳定性cas-5.3.14.war最佳,本次基于jdk8-201编译
cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信
H3C CAS 3.0版 H3C CAS 3.0产品培训胶片 H3C CAS-云计算管理平台技术白皮书V2.0 H3C CAS-云计算管理平台 安装指导-5W101-整本手册 H3C CAS-维护手册V2.0 H3C CAS-工程开局指导手册V2.0 H3C CAS-Rest API H3C ...
本人亲自试验的cas单点登录配置,服务端用cas-server-3.5.2,客户端用cas-client-3.2.1,里边详细描述了具体每一步的配置过程及遇到的问题及异常,相信你也会碰到的,cas-client-3.2.1中需要修改一个java类的源代码...
逻辑优化、逻辑验证、逻辑综合所需的ISCAS测试基准电路
CAS单点登录,退出后ticket失效报出异常解决办法——换jar包 把客户端的 casclient.jar 包换成我的这个。
CAS5.3.2Docker 部署方案CAS5.3.2Docker 部署方案CAS5.3.2Docker 部署方案
cas版本3.4.0,spring security版本3.1.4,经测试可用!