Java 基于Spring mvc注释的控制器RequestMappingHandlerMapping有什么问题?

Java 基于Spring mvc注释的控制器RequestMappingHandlerMapping有什么问题?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在将我的一个应用程序从Spring工具套件IDE移植到纯EclipseJavaEEIDE。 在这个过程中,我重命名了一些包,并将其更改为基于Maven的。然后所有的控制器都不工作了 我认为annotation controller的发现似乎失败了。Spring没有注册映射url 有人知道问题出在哪里吗 我从我的STS(工作)中收集旧日志,它工作起来很好 > 2013-04-21 22:43:05,622 [Thread-1] DEBUG > org.springframework

我正在将我的一个应用程序从Spring工具套件IDE移植到纯EclipseJavaEEIDE。 在这个过程中,我重命名了一些包,并将其更改为基于Maven的。然后所有的控制器都不工作了

我认为annotation controller的发现似乎失败了。Spring没有注册映射url

有人知道问题出在哪里吗

我从我的STS(工作)中收集旧日志,它工作起来很好

> 2013-04-21 22:43:05,622 [Thread-1] DEBUG
> org.springframework.beans.factory.support.DefaultListableBeanFactory -
> Finished creating instance of bean
> 'org.springframework.web.servlet.handler.MappedInterceptor#2'
> 2013-04-21 22:43:05,623 [Thread-1] DEBUG
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
> - Looking for request mappings in application context: WebApplicationContext for namespace 'HelloSpringroo2-servlet': startup
> date [Sun Apr 21 22:43:05 EDT 2013]; parent: Root
> WebApplicationContext 2013-04-21 22:43:05,653 [Thread-1] INFO 
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
> - Mapped "{[/account/create],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}"
> onto public java.lang.String
> com.hellospringroo.controllers.AccountController.createAccountActionDisplay(org.springframework.ui.Model)
> 2013-04-21 22:43:05,653 [Thread-1] INFO 
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
> - Mapped "{[/account/view/{account_Id}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}"
> onto public java.lang.String
> com.hellospringroo.controllers.AccountController.viewAccountActionDisplay(int,org.springframework.ui.Model)
> throws java.lang.Exception
然后我从Eclipse收集日志(问题一)

你的:


现在应该是

<context:component-scan base-package="new.package.name" />

您是否有机会将Spring jars的版本从3.0更改为3.2,或从3.2.2等更改为3.2.M1

我也有类似的问题(不确切),但这对我来说是有效的

旧版本具有处理程序方法
@RequestMapping(“\pqr”)
@Controller(“\abc”)
。处理的URL是
\abc\pqr

由于新版本不起作用,我不得不将其更改为
@Controller@RequestMapping(“\abc”)
,然后处理程序方法映射与上面相同。
或者在处理程序方法上使用完整的url映射,而不是在控制器级别,例如在方法级别上使用
@RequestMapping(“\abc\pqr”)

如果重命名了软件包,则必须在组件扫描中对其进行重命名。是否可以检查类路径以查看是否所有类文件都复制到了预期的软件包是的,我检查了war文件。类文件在那里。还要匹配上下文:组件扫描基本包。这就是我所做的。我验证了packge名称是否为rightcontext:component scan-base-package(用于我的JPA的组件扫描基本包)工作正常。只为控制器不需要work@Grey您是否有
mvc:annotation-driven
?另外-当您的应用程序启动时,您是否在日志中看到映射?我终于发现了问题。我更改了applicationContext.xml,但保留了webmvc-config.xml。因此,JPA实体、服务扫描正常,控制器除外。
<context:component-scan base-package="old.package.name" />
<context:component-scan base-package="new.package.name" />