当前位置: 首页 > 知识库问答 >
问题:

如何修复“messageSourceBean的parentMessageSource”,使其不总是空的

麻桐
2023-03-14

我正在用spring boot创建一个带有自定义验证消息的API,并且我总是得到组织。springframework。上下文NoSuchMessageException:在“代码”名称下找不到消息。属于我的当我尝试从消息中获取消息时,区域设置“en\u US”的消息出现异常。属性文件。

起初,我认为这是因为语言环境,所以我试图让我自己的LocaleResolver@Bean设置默认语言环境为美国,并将messages.properties文件名更改为messages_en_us.properties,但它并没有解决这个问题。

我最后想,也许是因为MessageSource对象,我认为我是对的。当我调试时,我看到MessageSource对象在null处有父母消息源,当我进入getMessage()方法时,我看到如果父母消息源为空,它会抛出NoSuchMessageException。我没有找到很多关于这个特定问题的信息,这就是我在这里问这个问题的原因。

这是我在application.java的代码(直到我让它工作):

@Bean
public MessageSource messageSource() {

    ResourceBundleMessageSource messageSource = new 
        ResourceBundleMessageSource ();

    messageSource.setBasename("classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    return messageSource;
}   

@Bean
public LocalValidatorFactoryBean validator(MessageSource messageSource) {
    LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
    bean.setValidationMessageSource(messageSource());
    return bean;
}

信息。属性:

user.firstName.NotNull=First name must not be null.

从我阅读的所有教程中,这只是我获取验证消息所需的,但是,由于parentMessageSource为null,即使我的其余代码看起来正常,也不可能。

共有1个答案

齐起运
2023-03-14

我找到了解决办法。

实际上很简单。我自己对Spring Boot的误解在这里是错误的。基本上,在我的测试类中,我需要添加注释@ConfigurationContext(class=Application.java, MyCustomValidationConfig.java)并且成功了!感谢大家看了看。现在我只需要弄清楚test@有效!

 类似资料:
  • 我正试着数字符串中元音的数目。问题是它编译正确,但当我运行它时,命令窗口显示“countvowels.main(countvowels.java:25)处线程'main'java.lang.NullPointerException”。 是什么导致了这一点,我该如何修复它,我该如何防止它在未来再次发生? 第25行是我的if语句:

  • 检查数组是空的还是不存在的最好方法是什么? 像这样的?

  • 问题内容: 我使用下面的JDBC代码来调用需要Array输入的Oracle存储过程。 但是不建议使用以下三个类。如何替换呢? Java代码 问题答案: 来自oracle API文档。 数组描述符 使用工厂方法OracleConnection.createOracleArray直接创建java.sql.Array的实例。 结构 使用java.sql.Struct接口进行声明,而不要使用具体的类ora

  • 在浏览结构和XML时,我注意到我的日期是字符串格式的: 元素name=“datetime”value=“datetime”label=“datetime”datatype=“xsd:string”breakorder=“ascending”fieldorder=“3” 所以我删除了to_char以获得日期格式 如何解决此问题? 编辑:列的格式,时间戳,格式是CHAR(14)值的例子是2020070

  • 我的应用程序在Google Play中被拒绝了,因为TrustManager的一些不安全的实现。 但是在我的库中,我只有TrustManager的一个实现(这是我的SSLUtil类)。 我不明白为什么我的申请被拒绝了。

  • 我的服务级别如下,接下来是测试- 测试类:在我下面的测试类中,我在调试时将响应实体对象视为null,这会导致NPE。 当我调试测试时,我在主服务类的以下行中获得了一个空值——