2013-04-22 88 views
2

我将我的一个应用程序从Spring工具套件IDE移植到纯Eclipse Eclipse EE IDE。 在这个过程中,我正在重命名一些包并将其更改为基于Maven。然后所有的控制器不再工作了。基于Spring mvc注解的控制器RequestMappingHandlerMapping有什么问题?

我认为注解控制器发现似乎破裂。没有映射网址注册与春天。

有谁知道问题是什么?

我收集旧日志从我的STS(工作),它的工作原理和喜欢就好

2013年4月21日22:43:05622 [线程1] DEBUG org.springframework.beans。 org.springframework.web.servlet.handler.MappedInterceptor#2' 2013-04-21 22:43:05,623 [Thread-1]调试 org.springframework。创建bean的实例 org.springframework。 web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 在应用程序上下文中查找请求映射:用于命名空间'HelloSpringroo的WebApplicationContext 2-servlet':startup date [Sun Apr 21 22:43:05 EDT 2013];父:根 WebApplicationContext 2013-04-21 22:43:05,653 [Thread-1]信息 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 映射“{[/ account/create],方法= [] GET,params = [],headers = [],consumes = [],生成= [],custom = []}“ public java.lang.String com.hellospringroo.controllers.AccountController.createAccountActionDisplay org.springframework.ui.Model) 2013-04-21 22:43:05,653 [Thread-1]信息 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 映射“{[/ account /查看/ {account_Id}],方法= [GET],params = [],headers = [],consumes = [],生成= [],custom = []}“ public java.lang.String com。 hellospringroo.contr ollers.AccountController.viewAccountActionDisplay(INT,org.springframework.ui.Model) 抛出java.lang.Exception的

然后我收集的Eclipse(问题一)日志

2013-04- org.springframework.web.servlet.DispatcherServlet - DispatcherServlet 带名称'Education'正在处理GET请求[/ Education /] 2013-04-12 [http-bio-8080-exec-3] DEBUG 2013- 21 22:48:04,901 [http-bio-8080-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMappi ng - 查找处理路径的方法/ 2013-04-21 22:48:04,901 [http-bio-8080-exec-3]调试 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - [/] 2013-04-21 22:48:04,904 [http-bio-8080-exec-3] DEBUG org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Mapping [/] to [/] HandlerExecutionChain处理器 [or[email protected]54bbb2d0] 和1拦截器2013-04-21 22:48:04,905 [http-bio-8080-exec-3]调试 org.springframework。 web.servlet.DispatcherServlet - Last-Modified [/ Education /]的值是:-1 2013-04-21 22:48:04,914 [http-bio-8080-exec-3] DEB org.springframework.beans.factory.support。UG org.springframework.beans.factory.support。DefaultListableBeanFactory - 调用的afterPropertiesSet()上的名为 '指数'

+0

如果您重命名了包,则必须在组件扫描中重命名它们。 – 2013-04-22 03:37:45

+0

你可以检查你的类路径,看看是否所有的类文件都复制到预期的包 – 2013-04-22 03:50:32

+0

是的,我检查战争文件。类文件在那里。还匹配上下文:component-scan base-package。 – Grey 2013-04-22 04:05:06

回答

2

豆你:

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

现在应该

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

这就是我所做的。我确认packge名称是正确的 – Grey 2013-04-22 03:48:09

+0

context:我的JPA的component-scan base-package工作正常。只是为控制器不工作 – Grey 2013-04-22 04:05:41

+1

@Grey你有'mvc:annotation-driven'吗? – 2013-04-22 04:08:42

0

你有任何机会改变了春瓶的版本从3.2到3.2还是从3.2.2到3.2.M1等等?

我有类似的问题(不是确切的),但这是对我有用。

旧版本有@Controller("\abc")与处理程序方法@RequestMapping("\pqr")。这被处理的URL是\abc\pqr

与没有工作,我不得不把它与上述相同的改变 @Controller @RequestMapping ("\abc"),然后处理方法映射新版本。 或在处理程序方法上使用完整的url映射,而不是在控制器级别上,例如在方法级别上使用@RequestMapping("\abc\pqr")

相关问题