gpt4 book ai didi

spring - Grails 4.0.1 - MessageSource 注入(inject)和使用方法获取消息给出空指针异常错误

转载 作者:行者123 更新时间:2023-12-02 15:16:04 25 4
gpt4 key购买 nike

我正在升级到 Grails 4.0.1,但我遇到了国际化问题。我不断收到 NullPointerException错误 java.lang.NullPointerException: Cannot invoke method getMessage() on null object .导致错误的代码行是:

  return messageSource.getMessage('dashboard.completed.label', 'Approved', LocaleContextHolder.getLocale())

当我 println(messageSource) ,值为空。我试过添加
   spring: 
messages:
basename: grails-app/i8n/**

给我的 application.yml ,但我仍然得到同样的错误。我想也许问题是我的 resources.groovy 中缺少一个 bean。 ,所以我将以下 messageSource bean 添加到 resources.groovy :
   beans = {
messageSource(ReloadableResourceBundleMessageSource){
basename = grails-app/i18n/messages
}
}

但是,这会产生以下错误 org.grails.core.exceptions.GrailsConfigurationException: Error loading spring/resources.groovy file: No such property: grails for class: grails.spring.BeanBuilder .

然后我决定尝试将 bean 放入 resources.xml文件而不是 resources.groovy .
  <bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="grails-app/i18n/" />
<property name="defaultEncoding" value="UTF-8" />
</bean>

但这也会产生 NullPointerException .在网上搜索后,我找到了一个资源,通过在 bootstrap.groovy 中初始化 messageSource 来提出解决方法。所以我添加了以下内容:
  def messageSource

def init = { servletContext ->
messageSource.basenames = ['/grails-app/i18n/messages']
messageSource.afterPropertiesSet()
}

这会产生相同的 NullPointerException错误。

这在我升级之前工作正常。如果我 println(messageSource)bootstrap.groovy 内部,程序打印基本名称数组。然而,做 println(messageSource)在注入(inject)消息源后在我的 Controller 中打印“null”。也许我在升级过程中遗漏了一些东西,但我不确定它是什么。有没有人知道我为什么会收到错误以及我可以采取哪些措施来修复它?

最佳答案

在 Controller 或服务导入中:

import org.springframework.context.MessageSource
import org.springframework.context.i18n.LocaleContextHolder

然后声明:
@Autowired
private MessageSource messageSource

并像这样使用:
messageSource.getMessage('my.message.properties.msg', null, 'Default Message', LocaleContextHolder.locale)

它适用于 Grails 4.0.1

关于spring - Grails 4.0.1 - MessageSource 注入(inject)和使用方法获取消息给出空指针异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59736928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com