从spring mvc 3.0.7-RELEASE升级到4.1.7-RELEASE时找不到匹配的处理程序方法

时间:2016-09-02 10:03:54

标签: java spring spring-mvc portlet

我目前在使用spring mvc关于我的portlet之间的事件。

实际上,我有两个已经升级到spring 4.1.7的portlet,当我尝试在它们之间交换一个对象时,出现了这个异常:

 org.springframework.web.portlet.NoHandlerFoundException: No matching handler method found for portlet request: mode 'view', phase 'EVENT_PHASE', parameters map[[empty]]

这里的问题是,当我使用应该接收事件的portlet回到Spring 3.0.7-RELEASE时,没有更多问题。但我希望我的所有portlet都在同一个春季版本。

我为春天4导入了那些罐子:

spring-aop-4.1.7.RELEASE.jar
spring-beans-4.1.7.RELEASE.jar
spring-context-4.1.7.RELEASE.jar
spring-core-4.1.7.RELEASE.jar
spring-expression-4.1.7.RELEASE.jar
spring-web-4.1.7.RELEASE.jar
spring-webmvc-4.1.7.RELEASE.jar
spring-webmvc-portlet-4.1.7.RELEASE.jar

和春季3.0.7:

the same jar as above (version 3.0.7 instead of course) plus spring-asm-3.0.7.RELEASE.jar

在接收事件的portlet上,我在portlet.xml中有了这个配置

<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
    <supports>
        <mime-type>text/html</mime-type>
        <portlet-mode>view</portlet-mode>
    </supports>
<filter>
    <filter-name>filter-name</filter-name>
    <filter-class>.path.to.portlet.filter.MapperEventFilter</filter-class>
    <lifecycle>EVENT_PHASE</lifecycle>
</filter>
   .
   .
   .

顺便说一下,我在两个portlet中也导入了portlet-2.0 api,我使用java 8。

我想知道是否有人遇到同样的问题或对这个问题有所了解。我不知道为什么更改spring版本会给我带有处理程序映射的问题。 告诉我,如果我不清楚某事。

1 个答案:

答案 0 :(得分:0)

尝试在"yourPortletName"-portlet.xml中启用

<mvc:annotation-driven/>

或者如果您想在课程级别使用基于.java的配置:

@EnableWebMvc