在wcmscockpit的预览中获取"服务器错误"。

2020-09-23 02:39发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)当我尝试在wcms页面上单击预览...

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

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


当我尝试在wcms页面上单击预览时,出现服务器错误,并且登录控制台为:: 替代文字 信息| jvm 1 | 主| 2018/03/23 06:02:40.584 | 严重:路径为[]的Servlet [DispatcherServlet]的Servlet.service()抛出异常[处理内部过滤链时出错。 异常发生在链位置:4 of15。当前过滤器:'com.mauijim.storefront.filters.cms.CMSSiteFilter@74e43dd2'!; 嵌套异常为java.lang.IllegalArgumentException:en_us没有匹配的DataLocale(在可用语言环境{es_ES = es_ES-> es_ES,es_CO = es_CO-> es_CO,in = in-> id,mx = mx-> mx中尝试过[en_us] ,pt = pt-> pt,es_MX = es_MX-> es_MX,fr = fr-> fr,ru = ru-> ru,ja = ja-> ja,zh_TW = zh_TW-> zh_TW,it = it-> it, ko = ko-> ko,de_DE = de_DE-> de_DE,de = de-> de,es = es-> es,zh = zh-> zh,en = en-> en,hi = hi-> hi,it_IT = it_IT-> it_IT,fr_FR = fr_FR-> fr_FR,en_US = en_US-> en_US,en_GB = en_GB-> en_GB})],其根本原因是INFO | jvm 1 | 主| 2018/03/23 06:02:40.585 | java.lang.IllegalArgumentException:en_us没有匹配的DataLocale(在可用语言环境{es_ES = es_ES-> es_ES,es_CO = es_CO-> es_CO,in = in-> id,mx = mx-> mx,pt =上尝试过[en_us] pt-> pt,es_MX = es_MX-> es_MX,fr = fr-> fr,ru = ru-> ru,ja = ja-> ja,zh_TW = zh_TW-> zh_TW,it = it-> it,ko = ko -> ko,de_DE = de_DE-> de_DE,de = de-> de,es = es-> es,zh = zh-> zh,en = en-> en,hi = hi-> hi,it_IT = it_IT- > it_IT,fr_FR = fr_FR-> fr_FR,en_US = en_US-> en_US,en_GB = en_GB-> en_GB})信息| jvm 1 | 主| 2018/03/23 06:02:40.585 | 在de.hybris.platform.servicelayer.internal.i18n.impl.DefaultLocalizationService.matchDataLocale(DefaultLocalizationService.java:239)处 jvm 1 | 主| 2018/03/23 06:02:40.585 | 在de.hybris.platform.servicelayer.internal.i18n.impl.DefaultLocalizationService.setCurrentLocale(DefaultLocalizationService.java:119)信息| jvm 1 | 主| 2018/03/23 06:02:40.585 | 在de.hybris.platform.servicelayer.i18n.impl.DefaultI18NService.setCurrentLocale(DefaultI18NService.java:122)信息| jvm 1 | 主| 2018/03/23 06:02:40.585 | 在de.hybris.platform.acceleratorcms.context.impl.DefaultContextInformationLoader.loadFakeLanguage(DefaultContextInformationLoader.java:161)

(14.6 kB)
1条回答
哎,真难
2020-09-23 03:20

你好,

这似乎是语言环境的问题。 DefaultContextInformationLoader不适用于包含大写字母的isocode,例如" en_US",因为languageModel.getIsocodes()仅返回小写的语言环境,例如" en_us"。

要解决此问题,您可以在DefaultContextInformationLoader类的覆盖的loadFakeLanguages方法中使用de.hybris.platform.util.Utilities中的parseLocaleCodes方法,如下所示:

  @Override
  受保护的void loadFakeLanguage(final LanguageModel languageModel){
      如果(languageModel!= null){
         //这将返回错误的语言环境和较小的国家/地区
         //例如en_us而不是en_US
         //getI18NService()。setCurrentLocale(new Locale(languageModel.getIsocode()));
          最后的String [] loc = Utilities.parseLocaleCodes(languageModel.getIsocode());
          getI18NService()。setCurrentLocale(new Locale(loc [0],loc [1],loc [2]));
      }
  }
  

致谢,
PawełWrzask

一周热门 更多>