java.lang.IllegalArgumentException: Object of class [org.springframework.web.portlet.context.PortletRequestAttributes] must be an instance of class org.springframework.web.context.request.ServletRequestAttributes

please check the log

Caused by: java.lang.IllegalArgumentException: Object of class [org.springframework.web.portlet.context.PortletRequestAttributes] must be an instance of class org.springframework.web.context.request.ServletRequestAttributes
at org.springframework.util.Assert.isInstanceOf(Assert.java:337)
at org.springframework.util.Assert.isInstanceOf(Assert.java:319)
at org.springframework.web.servlet.view.ContentNegotiatingViewResolver.resolveViewName(ContentNegotiatingViewResolver.java:363)
at org.springframework.web.portlet.DispatcherPortlet.resolveViewName(DispatcherPortlet.java:1110)
at org.springframework.web.portlet.DispatcherPortlet.render(DispatcherPortlet.java:1052)
at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:761)
at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:522)

2 Answers
2

ContentNegotiatingViewResolver doesn't work with portlets, only servlets.

As a general rule, many servlet API classes in Spring have a portlet equivalent, e.g.

org.springframework.web.servlet.HandlerAdapter

org.springframework.web.portlet.HandlerAdapter

You have to make sure that you use the right one - the servlet and portlet APIs are completely incompatible.

However, since Spring 2.5, the portlet framework has been neglected (probably because it's very rarely used), and newer parts of the servlet MVC API have not been included in the portlet MVC API.

It would seem that if you want to do what you're trying to do, you're going to have to do a lot of it yourself. You might be able to copy some of the code from ContentNegotiatingViewResolver and related classes.

thanks, i found the jira link for the bug also but i was not sure. Now i think its better i create a servlet returning JSONObject string and calling that from the JSP... atleast that works fine :) any suggestions?
–
PaarthJul 6 '10 at 8:04

1

i have used separate servlet for JSON. And called it from JSP directly ...its returning perfect json :D
–
PaarthJul 6 '10 at 10:28