2013-04-22 81 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")

相關問題