Не найден обработчик для ошибки запроса при использовании ParameterHandlerMapping - PullRequest
1 голос
/ 28 марта 2012

Я новичок в разработке портлетов с помощью Spring MVC на LifeRay. Я делаю POC для моего проекта. На моей странице JSP я отправил запрос в контроллер следующим образом: -

<portlet:renderURL var="myRenderURL">
    <portlet:param name="action" value="accounts"/>
</portlet:renderURL>

В настоящее время я хочу написать функциональность только для просмотра страницы в контроллере, т.е. в режиме просмотра. Теперь, когда я отображаю контроллер, используя PortletModeHandlerMapping, он работает отлично и запрос поступает в контроллер, как и ожидалось. Ниже приведен фрагмент кода: -

**<bean id="portletModeHandlerMapping"
          class="org.springframework.web.portlet.handler.PortletModeHandlerMapping">
    <property name="portletModeMap">
        <map>
            <entry key="view" value-ref="partyAccountsSearchController" />
        </map>
    </property>
</bean>**

Но когда я хочу ту же функциональность, используя ParameterHandlerMapping. Я получаю следующую ошибку: -

07:46:16,704 WARN  [PageNotFound:1010] No mapping found for current request in DispatcherPortlet with name 'LiferaySpringMVCPortlet', mode 'view', phase 'RENDER_PHASE', session '216338AB54AAF5E16EE373D9B97E640A', user 'null
07:46:16,704 ERROR [DispatcherPortlet:559] Could not complete request
javax.portlet.UnavailableException: No handler found for request
        at org.springframework.web.portlet.DispatcherPortlet.noHandlerFound(DispatcherPortlet.java:1017)
        at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:706)
        at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:522)
        at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:470)
        at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
        at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101)
        at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
        at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
        at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
        at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:723)
        at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:425)
        at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(Unknown Source)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
        at com.liferay.portal.util.PortalImpl.renderPortlet(PortalImpl.java:3740)
        at com.liferay.portal.util.PortalUtil.renderPortlet(PortalUtil.java:1180)
        at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:160)
        at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:94)
        at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:256)
        at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:181)

Ниже приведен фрагмент кода, который я написал для запроса отображения в ParameterHandlerMapping: -

**<bean id="parameterHandlerMapping"
class="org.springframework.web.portlet.handler.ParameterHandlerMapping">
    <property name="parameterMap">
        <map>
            <entry key="accounts" value-ref="partyAccountsController" />
        </map>
    </property>
</bean>**

Теперь здесь происходит особая вещь, если я отображаю запрос на defaultHandler в ParameterHandlerMapping, он работает. то есть добавление

**<property name="defaultHandler" value="partyAccountsController"/>**

внутри bean-компонента параметра HandlerMapping.

Я не уверен, что что-то упускаю при настройке ParameterHandlerMapping.

Может кто-нибудь, пожалуйста, сообщите, какова проблема здесь при настройке ParameterHandlerMapping.

Любая помощь будет оценена.

Спасибо.

С уважением, -Наян Парих

...