我目前在使用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版本会给我带有处理程序映射的问题。 告诉我,如果我不清楚某事。
答案 0 :(得分:0)
尝试在"yourPortletName"-portlet.xml
中启用
<mvc:annotation-driven/>
或者如果您想在课程级别使用基于.java
的配置:
@EnableWebMvc