代码改变世界

org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found

2014-08-21 21:52  Rollen Holt  阅读(10915)  评论(0)    收藏  举报

今天在完成Spring项目的时候遇到了一个类似于下面的异常:

10.03.2010 13:53:53 org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet default threw exception
org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found 'com.example.Comparison.Operator'
at org.springframework.expression.spel.support.StandardTypeLocator.findType(StandardTypeLocator.java:79)
at org.springframework.expression.spel.ExpressionState.findType(ExpressionState.java:136)
at org.springframework.expression.spel.ast.TypeReference.getValueInternal(TypeReference.java:45)
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:93)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:88)
at org.springframework.web.servlet.tags.EvalTag.doEndTag(EvalTag.java:118)

大致描述一下场景:

<util:map id="contractQueryStrategyHolder">

</util:map>

OperatorComparison的内部类。后来启动失败就出现上面的异常。解决方案其实很简单,只需要把配置修改为下面的就好:

<util:map id="contractQueryStrategyHolder">

</util:map>