2012-12-04 23 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中运行时失败。

相关问题