我想用支持JSON的DispatcherPortlet类制作spring MVC3.0.3 portlet。因此,我在spring上下文文件中添加了以下配置。
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">                                text/html                                                                                     如果没有这一点,如果我只使用'InternalResourceViewResolver‘,那么它运行得很好,并且我能够使用这个portlet。但是在定义了这个bean之后,我在tomcat启动时得到了以下错误。
我用谷歌搜索了一下,发现了一个链接,说明这个带有JSON的bean只能在最新的spring版本中与servlet一起工作。请同时检查链接。
http://jira.springframework.org/browse/SPR-7344 (portlets的JSON问题...)
http://jira.springframework.org/browse/SPR-6932?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel#issue-tabs
另外,请检查下面粘贴的错误。帮帮我..。谢谢。
:错误:
java.lang.IllegalArgumentException: Object of class [org.springframework.web.portlet.context.PortletRequestAttributes] must be an instance of class org.springframework.web.context.request.ServletRequestAttributes
请检查日志
 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)发布于 2010-07-06 15:31:52
ContentNegotiatingViewResolver不能与portlets一起工作,只能与servlets一起工作。
一般来说,Spring中的许多servlet API类都有一个等效的portlet,例如
您必须确保使用正确的APIs servlet和portlet API完全不兼容。
但是,从Spring 2.5开始,portlet框架就被忽略了(可能是因为它很少使用),并且portlet MVC API中没有包含servlet MVC API的较新部分。
看起来,如果你想做你想做的事情,你将不得不自己做很多事情。您也许能够从ContentNegotiatingViewResolver和相关类中复制一些代码。
发布于 2011-05-31 00:56:33
看看这个。它现在应该可以工作了
<!-- View Resolver -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/test/testJSp/" />
    <property name="suffix" value=".jsp" />
      <property name="order" value="2" />
</bean>https://stackoverflow.com/questions/3183805
复制相似问题