私はSpringブートアプリケーションに取り組んでおり、RequestMappingが既に初期化された後に@RestController beanを追加しています。
新しいコントローラBeanはWebコンテキストにありますが、後で追加されたため、アプリケーションの起動が完了するとマッピングがありません。RequestMappingHandlerMappingをリフレッシュする方法はありますか?
[私はマッピングでメソッドを再登録するすべてのBeanを呼び出すと仮定]私はRequestMappingHandlerMappingの「afterPropertiesSetを()」を呼び出すことができ期待していたが、私はあいまいなマッピングで終わるを登録する方法はあります特定のBeanをリフレッシュするか、RequestMappingHandlerMappingを更新しますか?
私はコンフィギュレーションプロジェクトによって参照されていない別のプロジェクトで@RestControllerを持っている -
Caused by: java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:52765/error': {public org.springframework.http.ResponseEntity org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest), public org.springframework.http.ResponseEntity org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)}
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:367) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:314) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:61) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:352) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1160) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:940) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
... 26 common frames omitted
別の方法を尋ねます。
私は設定プロジェクトと@RestControllerを持つ 'module'プロジェクトの両方を参照する3番目のプロジェクトを持っています。
RequestMappingHandlerMappingを設定する前に、モジュールプロジェクトの@RestControllerをアプリケーションコンテキストに確実に追加する方法を教えてください。
メインプラットフォーム - - https://github.com/savantly-net/sprout-platform/tree/development/
自動設定プロジェクト - https://github.com/savantly-net/sprout-platform/tree/development/spring/sprout-spring-boot-starter
モジュールプロジェクト - https://github.com/savantly-net/sprout-platform/tree/development/modules/sprout-wiki-module
は、私はここでのプロジェクトを参照してください...多分私は何とかそれを使用することができます考えて、カスタムアノテーションを作成しましたフルWebプロジェクト - https://github.com/savantly-net/garden/tree/development
このプロジェクトをビルドすると、 wikiモジュールBeanはアプリケーションコンテキストに追加されますが、@RestControllerはマップされません。
どのような考えですか?
これが参考になっhttps://stackoverflow.com/a/5758529/1527544かもしれ – Antoniossss