SpringMVC no URL paths identified 404

2439 ワード

何気なく巨牛の人工知能のチュートリアルを見つけて、思わず共有してあげました.教程は基礎がゼロで、分かりやすくて、しかもとても面白くてユーモアがあって、小説を読むようです!すごいと思って、みんなに分かち合いました.ここをクリックしてチュートリアルにジャンプします.
SpringMVCの起動には次のようなヒントが表示されます.
 
[org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping]-[86]-[DEBUG]Rejected bean name 'authController': no URL paths identified

正常な要求doはバックグラウンドに次のようなヒントが表示されます.
 
 
No mapping found for HTTP request with URI [/auth/login.htm] in DispatcherServlet with name 'springMvc'

 
同時にブラウザは404を表示して、このような問題は簡単に調べることができなくて、tomcatあるいはjettyが起動する時いかなる異常な情報が現れないため、ここではこのような問題が発生する1つの情況だけを提供して、ネット上で関連する問題の説明があって、しかしすべて私が出会った情況ではありません.問題の原因と解決方法を以下に説明する.
 
問題の原因
Spring-mvc.xmlに次の構成を追加しました.
 

その構成は次のように説明されています(ネットワークから).
            , WEB-INF   、     ,      JavaScript       JAR  。  location           ,  location   Resources  ,        "classpath:"            。  Web           Web       ,         。 

  ,       Page Speed、YSlow                 。     cacheSeconds                  ,            ,            。        ,              Expires   Cache-Control 。

 
解決策:
 
方法1、MVC:resourcesを直接注釈して、このように資源はサービスを通じてロードした後にしかユーザーに展示できない(使用を推奨しない)
方法2、配置を加える、
 
spring-mvcを構成する.xmlファイルには、注釈をスキャンする方法が3つあります(ネットワークに整理されています)
D e f a u l t AnnotationHandlerMappingとAnnotationMethodHandlerAdapterの2つのbeanを登録し、いくつかのmessageconverterを構成することに相当します.@Controller注記の使用前提設定が解決しました.1)SpringコンテナにA u t o w i r e d AnnotationBeanPostProcessor、C o m o n A n o t i o tionBeanPostProcessor、P e r s i s t e n c e AnnotationBeanPostProcessorおよびequiredAnnotationBeanPostProcessorの4つのBeanPostProcessorを暗黙的に登録する.プロファイルで使用する前に、要素にcontextネーミングスペースを宣言する必要があります.2)はパッケージをスキャンし,注釈駆動Bean定義を実現するとともにbeanをコンテナに自動的に注入して使用する.すなわち@Controllerが識別するクラスのbeanの注入と使用を解決する.コンフィギュレーション・アイテムは、クラス・パッケージをスキャンしてアノテーション駆動Bean定義を実装する機能を有効にするとともに、アノテーション駆動オートインジェクションの機能も有効にする(すなわち、A u t o w i r e d AnnotationBeanPostProcessorとCommonAnnotationBeanPostProcessorが内部に暗黙的に登録されている)ため、使用後、P e r s i s t e n c e N o n t i o n t i o n BeanPostProcessorとe q u i r e d n o t i o n BeanPostProcessorの2つのProcessorの機能(JPAなど)を使用する必要がない限り、削除できます.
 
これで、問題、解決策、関連知識の整理が完了しました.