`
cleaneyes
  • 浏览: 335525 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CAS稳定性测试异常

    博客分类:
  • 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{

分享到:
评论
4 楼 cleaneyes 2013-01-30  
flyingdonkey 写道
cleaneyes 写道
性能还不错吧,解决这个问题之后,表现稳定,不过我们并没有测试很大的并发量。
使用CAS,就是在IE6下面的安全提示信息比较烦。

ie6下会话cookie是不能共享的吧
如果新开一个ie,能实现单点登录吗?


新开一个IE,是不行的。你的理解正确。
3 楼 flyingdonkey 2012-05-29  
cleaneyes 写道
性能还不错吧,解决这个问题之后,表现稳定,不过我们并没有测试很大的并发量。
使用CAS,就是在IE6下面的安全提示信息比较烦。

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

相关推荐

Global site tag (gtag.js) - Google Analytics