我在我的 java 配置中定义了消息源:
@Bean(name = "messageSource")
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasenames(
"/i18n/ir/kia/industry/webapp/entity",
"/i18n/ir/kia/industry/webapp/formErrors",
"/i18n/ir/kia/industry/webapp/frontend",
"/i18n/ir/kia/industry/webapp/frontendPages");
return messageSource;
}
使用站点时它工作正常并且消息正确显示,但是当尝试使用以下方式编写弹簧测试时:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestContext.class, SpringMVC.class})
@WebAppConfiguration
public abstract class AbstractTestClass {
protected MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
}
和一个简单扩展它的测试类,我得到错误Can't find bundle for base name /i18n/ir/kia/industry/webapp/entity
。
它在启动tomcat并在jsp文件中使用消息源时工作正常,但在测试时没有运气。我曾尝试在 WEB-INF 下移动 i18n 文件夹,但它也没有帮助。
目标文件夹看起来像这样,请不要告诉我将 i18n 文件夹添加到目标资源...