发送电子邮件时没有匹配的DataLocale

2020-09-22 10:56发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,当客户注册新帐户时hybris尝试发送电子邮件时,控制台中会出现以下错误,并且与对EmailPage的'forName'属性的查找有关:

(包括完整的日志作为附件)

错误[TaskExecutor-master-174-ProcessTask [8796355330998]] [ProcessengineTaskRunner]执行ID为[generateCustomerRegistrationEmail]的ActionNode时出错: en_gb没有匹配的DataLocale (在可用语言环境{fr_BE上尝试了[en_gb] = fr_BE-> fr_BE,en = zh-> en,fr_CH = fr_CH-> fr_CH,sv = sv-> sv,cs = cs-> cs,nl_BE = nl_BE-> nl_BE,nl_NL = nl_NL-> nl_NL,de_DE = de_DE-> de_DE,sk = sk-> sk,fr = fr-> fr,nl = nl-> nl,es = es-> es,de_AT = de_AT-> de_AT,de = de-> de,de_CH = de_CH -> de_CH,fr_FR = fr_FR-> fr_FR,da = da-> da,it = it-> it, en_GB = en_GB-> en_GB ,en_AU = en_AU-> en_AU})

这是一个错误吗? 我认为查询应该不区分大小写...

关于如何以干净的方式解决此问题的任何想法? 还是杂音可以为此提供补丁?

完整日志

997-nomatchingdatalocale.txt (5.4 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,当客户注册新帐户时hybris尝试发送电子邮件时,控制台中会出现以下错误,并且与对EmailPage的'forName'属性的查找有关:

(包括完整的日志作为附件)

错误[TaskExecutor-master-174-ProcessTask [8796355330998]] [ProcessengineTaskRunner]执行ID为[generateCustomerRegistrationEmail]的ActionNode时出错: en_gb没有匹配的DataLocale (在可用语言环境{fr_BE上尝试了[en_gb] = fr_BE-> fr_BE,en = zh-> en,fr_CH = fr_CH-> fr_CH,sv = sv-> sv,cs = cs-> cs,nl_BE = nl_BE-> nl_BE,nl_NL = nl_NL-> nl_NL,de_DE = de_DE-> de_DE,sk = sk-> sk,fr = fr-> fr,nl = nl-> nl,es = es-> es,de_AT = de_AT-> de_AT,de = de-> de,de_CH = de_CH -> de_CH,fr_FR = fr_FR-> fr_FR,da = da-> da,it = it-> it, en_GB = en_GB-> en_GB ,en_AU = en_AU-> en_AU})

这是一个错误吗? 我认为查询应该不区分大小写...

关于如何以干净的方式解决此问题的任何想法? 还是杂音可以为此提供补丁?

完整日志

997-nomatchingdatalocale.txt (5.4 kB)
付费偷看设置
发送
9条回答
黑丝骑士
1楼 · 2020-09-22 11:56.采纳回答

我有同样的问题。 永远不要使用默认的 Locale 构造函数将hybris语言模型转换为Java语言环境,例如

区域设置=新的区域设置(languageModel.getIsocode())

改为使用 CommonI18NService.getLocaleForLanguage(),例如:

 语言环境语言环境= commonI18NService.getLocaleForLanguage(languageModel);
  

或使用返回Java语言环境的 I18NService

SC_Yao
2楼-- · 2020-09-22 11:54

Richard,谢谢您的回复。 是的,我们有多个变体,en_GB和en_AU。 每个店面都使用主要语言的本地变体...。我采用了AbstractEmailContext的init方法,并将其放入店面的CustomerEmailContext中,并注释了以下几行:

 //字符串fromName = emailPageModel.getFromName(new Locale(language.getIsocode()));
 //如果(fromName == null)
 //{
      最后的字符串fromName = emailPageModel.getFromName();
 //}

  

这可行,但是我想这个方法现在总是返回'en'值? 我还没有时间自己进行测试

槿木_熙
3楼-- · 2020-09-22 11:38

修复是在AbstractEmailContext中使用更新的代码。修复是覆盖AbstractEmailContext,如下所示:

来自

String fromName = emailPageModel.getFromName(new Locale(language.getIsocode())); //第116行//de.hybris.platform.acceleratorservices.process.email.context.AbstractEmailContext.init(T,EmailPageModel)

最后的String [] loc = Utilities.parseLocaleCodes(language.getIsocode()); 字符串fromName = emailPageModel.getFromName(new Locale(loc [0],loc [1],loc [2]));

将更新的AbstractEmailContext复制到定制文件夹。 然后运行ant clean全部定制。 因此,在新环境上使用该代码时,将使用更新的AbstractEmailContext而不是出现DataLocale问题的代码。

一周热门 更多>