我有一个带有国际化消息的春季启动Thymeleaf Web应用程序。
默认翻译位于我的messages.properties
文件中。
我的application.yml
会将MessageSourceAutoConfiguration
指向这些消息:
spring:
messages:
basename: locale/messages
当我运行应用程序时,MessageSourceAutoConfiguration.setBasename()
中的断点会被参数locale/messages
命中,并且一切都运行良好。
现在我想使用Zuul将此应用程序设置为reverse proxy,以将请求从浏览器传递到REST应用程序。
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableZuulProxy
public class ThymeleafApplication extends SpringBootServletInitializer {
...
}
所以我在我的application.yml
添加了一些配置:
zuul:
routes:
rest-api:
path: /rest-api/**
url: https://localhost:443/my-rest-api
我的build.gradle
看起来像这样:
dependencies {
compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
compile 'org.springframework.cloud:spring-cloud-starter-zuul:1.0.4.RELEASE'
}
反向代理现在可以正常工作,但国际化已被打破。消息显示为“?? page1.message1_en_GB ??”。 MessageSourceAutoConfiguration.setBasename()
中的断点不再触发。
如何设置Zuul以便我的i18n仍能正常工作?
答案 0 :(得分:1)
好的,我已经通过升级到最新版本的Spring Boot 1.3.1.RELEASE来解决这个问题。
@ {nerdherd对a bug的回答指出a similar question。