【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
希望在spring boot 1.2.4 中加入ResourceBundleThemeSource管理主题资源, 成功启动后访问freemarker视图, 读取主题资源报错, 日志中看到, spring仅查找了messageSource而未查找themeSource, 有人碰到过此问题吗?
我尝试过在WebMvcConfigurerAdapter中通过@Bean直接将ResourceBundleThemeSource拿如管理, 无论是加入了ResourceBundleThemeSource还是LocaleMessageSource启动都会报错.
随后仿造WebMvcAutoConfiguration那个类, 修改代码将ResourceBundleThemeSource纳入spring管理, 启动成功, 且看到autoconfig正确报告, 且找到我配置的资源, 但读取时, 日志中看出, 仅查找了MessageSource, 未查找ThemeSource
日志好像是这样的(全凭记忆)
could not found resource name defaultThemeName for zh_CN // 这里未查找theme资源而只查找了message资源
求大神解答!!
经过摸索, 终于发现病灶....改太急....
改为
引用来自“逝水fox”的评论
得把你配置发出来,看起来像是什么配置有问题配置如下
这两行很可疑, 为什么主题资源是这个类org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE' of type [org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext] to request in view with name 'common/test.html'
2015-07-08 09:29:07.667 WARN 13264 --- [nio-8080-exec-1] o.s.c.s.ResourceBundleMessageSource : ResourceBundle [defaultThemeName] not found for MessageSource: Can't find bundle for base name defaultThemeName, locale en_US
日志
2015-07-08 09:29:07.611 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Exposing request attribute 'base' with value [http://localhost:8080] to model
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'message' of type [java.lang.String] to request in view with name 'common/test.html'
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'request' of type [org.springframework.web.servlet.support.RequestContext] to request in view with name 'common/test.html'
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER' of type [org.springframework.web.context.request.async.WebAsyncManager] to request in view with name 'common/test.html'
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.DispatcherServlet.CONTEXT' of type [org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext] to request in view with name 'common/test.html'
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.resource.ResourceUrlProvider' of type [org.springframework.web.servlet.resource.ResourceUrlProvider] to request in view with name 'common/test.html'
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'characterEncodingFilter.FILTERED' of type [java.lang.Boolean] to request in view with name 'common/test.html'
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE' of type [org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext] to request in view with name 'common/test.html'
2015-07-08 09:29:07.612 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER' of type [org.springframework.web.servlet.i18n.CookieLocaleResolver] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE' of type [java.util.Locale] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.HandlerMapping.bestMatchingPattern' of type [java.lang.String] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.DispatcherServlet.OUTPUT_FLASH_MAP' of type [org.springframework.web.servlet.FlashMap] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping' of type [java.lang.String] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.DispatcherServlet.FLASH_MAP_MANAGER' of type [org.springframework.web.servlet.support.SessionFlashMapManager] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.HandlerMapping.uriTemplateVariables' of type [java.util.LinkedHashMap] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVER' of type [org.springframework.web.servlet.theme.CookieThemeResolver] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'org.springframework.core.convert.ConversionService' of type [org.springframework.format.support.DefaultFormattingConversionService] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'base' of type [java.lang.String] to request in view with name 'common/test.html'
2015-07-08 09:29:07.613 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Added model object 'springMacroRequestContext' of type [org.springframework.web.servlet.support.RequestContext] to request in view with name 'common/test.html'
2015-07-08 09:29:07.615 DEBUG 13264 --- [nio-8080-exec-1] o.s.w.s.view.freemarker.FreeMarkerView : Rendering FreeMarker template [common/test.html] in FreeMarkerView 'common/test.html'
2015-07-08 09:29:07.667 WARN 13264 --- [nio-8080-exec-1] o.s.c.s.ResourceBundleMessageSource : ResourceBundle [defaultThemeName] not found for MessageSource: Can't find bundle for base name defaultThemeName, locale en_US