-1

我正在尝试在 heroku 中运行 Web 应用程序。它是一个具有 JSP-Servlet 架构的简单 Web 应用程序。

http://electric-rain-8409.herokuapp.com/client/home?page=Page&name=maginfoINSERT&type=form 当我点击此 URL 时出现此错误

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 页面。

令人惊奇的是,以下网址有效 http://electric-rain-8409.herokuapp.com/client/home?page=frontpage&tag=

无法真正理解为什么会这样。整个 Web 应用程序在本地机器环境中运行良好。

4

1 回答 1

0

我得到了错误。servlet 将此请求转发到的 JSP 页面尝试获取参数映射并尝试这样做

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中运行时失败。

于 2012-12-06T07:32:30.780 回答