2012-12-04 3 views
-1

Iam пытается запустить веб-приложение в герою. Его простое веб-приложение с архитектурой JSP-Servlet.java.lang.ClassCastException: при запуске веб-приложения в HEROKU

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)* 

сервлет он пытается попасть в UrlForward, который просто вызывает запрос на страницу jsp, указанную параметром.

Удивительно то, что следующий URL работает http://electric-rain-8409.herokuapp.com/client/home?page=frontpage&tag=

Не могу понять, почему это happening.The весь веб-приложение отлично работает в локальной среде машины.

+0

Какой код JSP сгенерировал строку 185 'org.apache.jsp.client.Page_jsp'? – BalusC

ответ

0

У меня ошибка. Страница 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.