javax.el.E​​LException:无法将类java.lang.String类型的abcCache转换为类java.lang.Class

时间:2014-03-05 14:48:08

标签: jsp spring-mvc

我随机开始

  

“javax.el.E​​LException:”

我们加载Java代码的jsp页面中的

错误。 同样的工作更早,但开始随机给出这个错误。尝试使用不同版本的JDK,tomcat和maven构建但问题仍然存在。 任何线索将不胜感激。 找到下面的日志:

  

2014年3月5日下午3:22:31 org.apache.catalina.core.ApplicationDispatcher   调用SEVERE:servlet jsp的Servlet.service()抛出异常   javax.el.E​​LException:无法转换类型的abcCache   类java.lang.String到java.lang.Class类   org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:420)at at   org.apache.el.E​​xpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:47)     在javax.el.BeanELResolver.invoke(BeanELResolver.java:469)at   org.apache.jasper.el.JasperELResolver.invoke(JasperELResolver.java:139)     在org.apache.el.parser.AstValue.getValue(AstValue.java:173)at   org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)     在   org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:963)     在

1 个答案:

答案 0 :(得分:2)

问题在于从JSP中调用重载的Java方法,而不会选择预期的方法。

e.g。 Illustration.java

getData(String input){
  // Code removed for simplicity 
}
getData(Class input){
  //Code removed for simplicity
}

这里,jsp代码 getData(“validInput”) 可以使用class参数拾取第二个方法。因此,异常 无法将类型 类java.lang.String的abcCache转换为类java.lang.Class

将第二种方法更改为以下解决问题。

 getDataFromClass(Class input){
  //Code removed for simplicity
 }

使用不同版本的JDK / Maven / Tomcat可能会出现问题。

作为一种惯例,人们可以考虑使用具有不同名称的方法,如果在这种情况下使用。