我随机开始
我们加载Java代码的jsp页面中的“javax.el.ELException:”
错误。 同样的工作更早,但开始随机给出这个错误。尝试使用不同版本的JDK,tomcat和maven构建但问题仍然存在。 任何线索将不胜感激。 找到下面的日志:
2014年3月5日下午3:22:31 org.apache.catalina.core.ApplicationDispatcher 调用SEVERE:servlet jsp的Servlet.service()抛出异常 javax.el.ELException:无法转换类型的abcCache 类java.lang.String到java.lang.Class类 org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:420)at at org.apache.el.ExpressionFactoryImpl.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) 在
答案 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可能会出现问题。
作为一种惯例,人们可以考虑使用具有不同名称的方法,如果在这种情况下使用。