读书人

CAS稳定性测试错误

发布时间: 2012-10-09 10:21:45 作者: rapoo

CAS稳定性测试异常

在使用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{

1 楼 fatter 2010-06-23 我也遇到过了这个问题,不知道lz对cas性能有没有看法。 2 楼 cleaneyes 2010-06-23 性能还不错吧,解决这个问题之后,表现稳定,不过我们并没有测试很大的并发量。
使用CAS,就是在IE6下面的安全提示信息比较烦。 3 楼 flyingdonkey 2012-05-29 cleaneyes 写道性能还不错吧,解决这个问题之后,表现稳定,不过我们并没有测试很大的并发量。
使用CAS,就是在IE6下面的安全提示信息比较烦。
ie6下会话cookie是不能共享的吧
如果新开一个ie,能实现单点登录吗?

读书人网 >软件架构设计

热点推荐