2014-03-05 41 views
0

我已經隨機開始得到javax.el.E​​LException:無法將類型類java.lang.String的abcCache到類java.lang.Class

「javax.el.E​​LException:」

在jsp頁面加載Java代碼的錯誤。 同樣的工作更早,但開始隨機給這個錯誤。曾嘗試使用不同版本的JDK,tomcat和maven構建,但問題仍然存在。 任何線索將不勝感激。 找到下面的日誌:

2014年3月5日下午3時22分31秒org.apache.catalina.core.ApplicationDispatcher 調用重度:Servlet.service()的servlet和jsp拋出異常 javax.el。 ELException:無法將 類型的abcCache轉換爲類java.lang.Class,類型爲 org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:420) org.apache.el.E​​xpressionFactoryImpl .coerceToType(ExpressionFactoryImpl.java:47) at 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)在 org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185) 在 org.apache.jasper.runtime.PageContextImpl .proprietaryEvaluate(PageContextImpl.java:963) 在

+0

'不能將類java.lang.String的shippingProvidersCache轉換爲類java.lang.Class'顯示標記,您正在處理JSP上的'shippingProvidersCache',以及分配給哪種類型的值變量在你的控制器上。 – t0mppa

+0

發佈您在JSP中使用的代碼,導致此錯誤。 –

+0

JSP中發生錯誤的代碼塊如下: \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t <選項值= 「$ {category.categoryUrl}」> $ {category.categoryName} \t \t \t \t \t \t \t \t \t \t \t \t \t \t - $ {categoryMap.key} \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t 在Java中我有高速緩衝存儲器,確實CacheManager.getInstance()。getCache(abcCache.class).someMethod( ) –

回答

1

的問題是與調用重載的Java方法從JSP連接預期的方法不會被拾起。

例如Illustration.java

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

這裏,JSP代碼的getData( 「則ValidInput」)罐拾取第二種方法與類參數。因此,異常無法轉換abcCache型類java.lang.String到類java.lang.Class

更改第二種方法解決了以下問題。

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

該問題可能隨不同版本的JDK/Maven/Tomcat隨機發生。

作爲一種實踐,人們可以想到如果在這種情況下使用不同名稱的方法。

相關問題