Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在区域设置代码下未找到消息';pl#u pl';_Java_Spring_Spring Boot - Fatal编程技术网

Java 在区域设置代码下未找到消息';pl#u pl';

Java 在区域设置代码下未找到消息';pl#u pl';,java,spring,spring-boot,Java,Spring,Spring Boot,当我尝试验证表单时,我没有得到messageSource.getMessage(…)方法调用的任何SuchMessageExceptions 以下是验证方法: @Override public Event validateUserCompany(NewUserCompanyForm userCompanyForm,MessageContext messageContext) { MessageBuilder error = new MessageBuilder().err

当我尝试验证表单时,我没有得到messageSource.getMessage(…)方法调用的任何SuchMessageExceptions

以下是验证方法:

@Override
    public Event validateUserCompany(NewUserCompanyForm userCompanyForm,MessageContext messageContext) {
        MessageBuilder error = new MessageBuilder().error();
        boolean eMailIsUsed=userCompanyDao.ifEmailIsUsed(userCompanyForm.getUserName());
        boolean companyNameIsUsed=userCompanyDao.ifCompanyNameIsUsed(userCompanyForm.getCompanyName());
        if(!eMailIsUsed && !companyNameIsUsed){
            return new EventFactorySupport().success(this);
        }else if(eMailIsUsed){
            error.source("userName");
            error.defaultText(messageSource.getMessage("message.userName.isUsed",null, LocaleContextHolder.getLocale()));
            messageContext.addMessage(error.build());
        }else if(companyNameIsUsed){
            error.source("companyName");
            error.defaultText(messageSource.getMessage("message.companyName.isUsed",null, LocaleContextHolder.getLocale()));
            messageContext.addMessage(error.build());
        }
        return new EventFactorySupport().error(this);
    }
我得到的例外是:

org.springframework.context.NoSuchMessageException: No message found under code 'message.userName.isUsed' for locale 'pl_PL'.
以下是message.properties文件的内容:

message.userName.isUsed= Message1.
message.companyName.isUsed= Message2.
以下是MessageSourcebean:

@Bean
    public MessageSource messageSource(){
        ReloadableResourceBundleMessageSource messageSource=new ReloadableResourceBundleMessageSource();
        messageSource.setDefaultEncoding("UTF-8");
        messageSource.setBasenames("/messages/messages");
        return messageSource;
    }
Messages目录位于路径/src/main/resources中

奇怪的是,当我在测试类中调用messageSource.getMessage(…)时,一切都正常

以下是测试类中的方法:

@Test
    public void messageSourceTest(){
        Assert.assertNotNull(messageSource.getMessage("message.companyName.isUsed",null, Locale.forLanguageTag("pl_PL")));
        Assert.assertNotNull(messageSource.getMessage("message.userName.isUsed",null, Locale.forLanguageTag("pl_PL")));
        Assert.assertNotNull(messageSource.getMessage("message.companyName.isUsed",null, Locale.ENGLISH));
        Assert.assertNotNull(messageSource.getMessage("message.userName.isUsed",null, Locale.ENGLISH));
    }
我找不到为什么测试中的方法调用没有生成异常的原因,但是系统其他部分中的相同方法调用会生成异常。服务中的validateUserCompany()方法在测试类中也能正常工作


我正在调用使用SpringWebFlow生成异常的方法

将资源束消息(包含message.properties)从resources目录移动到webapp解决了问题。

将资源束消息(包含message.properties)从resources目录移动到webapp解决了问题。

您提供的是
message.properties
文件的内容。同时在代码中有
messageSource.setBasenames(“/messages/messages”)
。注意最后的
s
。这是错别字吗?对不起,这是stackoverflow post中的错别字。项目名称正确。您提供的是
message.properties
文件的内容。同时在代码中有
messageSource.setBasenames(“/messages/messages”)
。注意最后的
s
。这是错别字吗?对不起,这是stackoverflow post中的错别字。项目名称正确无误。