2012-12-04 49 views
-1

Iam嘗試在heroku中運行Web應用程序。 它是一個使用JSP-Servlet體系結構的簡單Web應用程序。java.lang.ClassCastException:在HEROKU中運行Web應用程序時

http://electric-rain-8409.herokuapp.com/client/home?page=Page&name=maginfoINSERT&type=form 時,我打這個網址它給這個錯誤

java.lang.ClassCastException:java.util.Collections中的$ UnmodifiableMap不能轉換到的java.util.HashMap

*at org.apache.jsp.client.Page_jsp._jspService(org.apache.jsp.client.Page_jsp:185) 
----- 
----- 
----- 
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:288) 
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115) 
at com.akas.magclub.servlet.UrlForward.doGet(UrlForward.java:34)* 

該servlet它嘗試點擊的是UrlForward,它只是將請求發送到由參數Page標識的jsp頁面。

令人驚奇的是,下面的URL工作 http://electric-rain-8409.herokuapp.com/client/home?page=frontpage&tag=

真的不能明白這是爲什麼happening.The整個Web應用程序工作在本地計算機環境優良。

+0

什麼JSP代碼生成了'org.apache.jsp.client.Page_jsp'的第185行? – BalusC

回答

0

我得到了錯誤。在JSP頁面,servlet的將此請求轉發給試圖獲取參數圖和它試圖做這樣的

HashMap <String,String[]> parammap=(HashMap<String,String[]>)request.getParameterMap(); 

但request.getParameterMap()返回一個unmodifiableCollection不能轉換爲HashMap的,只是因爲它是隻讀且HashMap提供R/W訪問。

所以將其更改爲

Map<String,String[]> parammap=request.getParameterMap(); 

解決了這個問題。

但還有一樣東西仍然存在。使用HashMap的上述代碼在tomcat中運行時在本地運行良好,但在heroku中運行時失敗。

相關問題