将Hybris从6.7升级到1808版本时,获取FatalBeanException

2020-09-07 03:28发布

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

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


大家好,我将Hybris从6.7版本升级到1808版本,添加了自定义代码后出现了错误消息

org.springframework.beans.FatalBeanException:无法正确创建上下文混合全局上下文工厂,原因是,在类路径资源[excel/backoffice-excel-decorators-spring.xml]中创建名称为'defaultExcelExportWorkbookPostProcessor'的bean时出错 ]:设置bean属性" decorators"时无法解析对bean" excelExportDecorators"的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelExportDecorators'的bean时出错:用键[1]设置bean属性'sourceList'时无法解析对bean'headerPromptWorkbookDecorator'的引用; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-decorators-spring.xml]中定义名称为'defaultHeaderPromptWorkbookDecorator'的bean创建时出错:设置时无法解析对bean'classificationIncludedHeaderPromptPopulator'的引用 Bean属性'headerPromptPopulator'; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-populators-spring.xml]中定义名称为'defaultClassificationIncludedHeaderPromptPopulator'的bean创建时出错:设置时无法解析对bean'headerPromptDescriptorPopulators'的引用 Bean属性'excelAttributeDescriptorPopulators'; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为'headerPromptDescriptorPopulators'的bean时出错:无法创建类型为[com.hybris.backoffice.excel.template.populator.descriptor.ExcelReferenceFormatCellPopulator#65a20f76'的内部bean。 hybris.backoffice.excel.template.populator.descriptor.ExcelReferenceFormatCellPopulator],同时使用键[TypedStringValue:值[HEADER_REFERENCE_FORMAT],目标类型[class com.hybris.backoffice.excel.template.ExcelTemplateConstants $ HeaderPrompt]]设置bean属性" sourceMap" ; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-populators]中定义的名称为'com.hybris.backoffice.excel.template.populator.descriptor.ExcelReferenceFormatCellPopulator#65a20f76'的bean创建时出错 -spring.xml]:设置bean属性" registry"时无法解析对bean" excelTranslatorRegistry"的引用; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-translators-spring.xml]中定义名称为'defaultExcelTranslatorRegistry'的bean创建时出错:设置时无法解析对bean'excelTranslators'的引用 bean属性"翻译器"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelTranslators'的bean时出错:用键[6]设置bean属性'sourceList'时无法解析对bean'excelMediaImportTranslator'的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[excel/backoffice-excel-translators-spring.xml]中定义的名称为'defaultExcelMediaImportTranslator'的bean时出错:设置时无法解析对bean'excelMediaImportValidators'的引用 Bean属性"验证器"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelMediaImportValidators'的bean时出错:使用键[0]设置bean属性'sourceList'时无法解析对bean'excelMediaFilenameExtensionValidator'的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义名称为'defaultExcelMediaFilenameExtensionValidator'的bean创建时出错:设置时无法解析对bean'excelImportService'的引用 Bean属性'importService'; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[excel/backoffice-excel-spring.xml]中定义的名称为'defaultExcelImportService'的bean时出错:设置bean属性时无法解析对bean'excelPlatformValidationEngineAwareValidator'的引用 'excelValidationEngineAwareValidator'; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义名称为'defaultExcelPlatformValidationEngineAwareValidator'的bean创建时出错:设置时无法解析对bean'excelPlatformValidationEngineAwareStrategies'的引用 豆类财产的"策略"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelPlatformValidationEngineAwareStrategies'的bean时出错:使用键[0]设置bean属性'sourceList'时无法解析对bean'excelPlatformValidationEngineAwareLocalizedStrategy'的引用; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义的名称为'defaultExcelPlatformValidationEngineAwareLocalizedStrategy'的bean创建时出错:设置时无法解析对bean'excelValueConverterRegistry'的引用 bean属性'converterRegistry'; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义的名称为'defaultExcelValueConverterRegistry'的bean时出错。 嵌套的异常是java.lang.NullPointerException

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

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


大家好,我将Hybris从6.7版本升级到1808版本,添加了自定义代码后出现了错误消息

org.springframework.beans.FatalBeanException:无法正确创建上下文混合全局上下文工厂,原因是,在类路径资源[excel/backoffice-excel-decorators-spring.xml]中创建名称为'defaultExcelExportWorkbookPostProcessor'的bean时出错 ]:设置bean属性" decorators"时无法解析对bean" excelExportDecorators"的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelExportDecorators'的bean时出错:用键[1]设置bean属性'sourceList'时无法解析对bean'headerPromptWorkbookDecorator'的引用; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-decorators-spring.xml]中定义名称为'defaultHeaderPromptWorkbookDecorator'的bean创建时出错:设置时无法解析对bean'classificationIncludedHeaderPromptPopulator'的引用 Bean属性'headerPromptPopulator'; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-populators-spring.xml]中定义名称为'defaultClassificationIncludedHeaderPromptPopulator'的bean创建时出错:设置时无法解析对bean'headerPromptDescriptorPopulators'的引用 Bean属性'excelAttributeDescriptorPopulators'; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为'headerPromptDescriptorPopulators'的bean时出错:无法创建类型为[com.hybris.backoffice.excel.template.populator.descriptor.ExcelReferenceFormatCellPopulator#65a20f76'的内部bean。 hybris.backoffice.excel.template.populator.descriptor.ExcelReferenceFormatCellPopulator],同时使用键[TypedStringValue:值[HEADER_REFERENCE_FORMAT],目标类型[class com.hybris.backoffice.excel.template.ExcelTemplateConstants $ HeaderPrompt]]设置bean属性" sourceMap" ; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-populators]中定义的名称为'com.hybris.backoffice.excel.template.populator.descriptor.ExcelReferenceFormatCellPopulator#65a20f76'的bean创建时出错 -spring.xml]:设置bean属性" registry"时无法解析对bean" excelTranslatorRegistry"的引用; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-translators-spring.xml]中定义名称为'defaultExcelTranslatorRegistry'的bean创建时出错:设置时无法解析对bean'excelTranslators'的引用 bean属性"翻译器"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelTranslators'的bean时出错:用键[6]设置bean属性'sourceList'时无法解析对bean'excelMediaImportTranslator'的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[excel/backoffice-excel-translators-spring.xml]中定义的名称为'defaultExcelMediaImportTranslator'的bean时出错:设置时无法解析对bean'excelMediaImportValidators'的引用 Bean属性"验证器"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelMediaImportValidators'的bean时出错:使用键[0]设置bean属性'sourceList'时无法解析对bean'excelMediaFilenameExtensionValidator'的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义名称为'defaultExcelMediaFilenameExtensionValidator'的bean创建时出错:设置时无法解析对bean'excelImportService'的引用 Bean属性'importService'; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[excel/backoffice-excel-spring.xml]中定义的名称为'defaultExcelImportService'的bean时出错:设置bean属性时无法解析对bean'excelPlatformValidationEngineAwareValidator'的引用 'excelValidationEngineAwareValidator'; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义名称为'defaultExcelPlatformValidationEngineAwareValidator'的bean创建时出错:设置时无法解析对bean'excelPlatformValidationEngineAwareStrategies'的引用 豆类财产的"策略"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'defaultExcelPlatformValidationEngineAwareStrategies'的bean时出错:使用键[0]设置bean属性'sourceList'时无法解析对bean'excelPlatformValidationEngineAwareLocalizedStrategy'的引用; 嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义的名称为'defaultExcelPlatformValidationEngineAwareLocalizedStrategy'的bean创建时出错:设置时无法解析对bean'excelValueConverterRegistry'的引用 bean属性'converterRegistry'; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[excel/backoffice-excel-validators-spring.xml]中定义的名称为'defaultExcelValueConverterRegistry'的bean时出错。 嵌套的异常是java.lang.NullPointerException

付费偷看设置
发送
6条回答
Aaron 3364
1楼-- · 2020-09-07 03:29

在我们的案例中,此问题是由Dynatrace代理引起的。 这是我们发现的方式:

  1. 启用spring LOG调试:

    log4j2.logger.OrgSpring.name = org.springframework

    log4j2.logger.OrgSpring.level = debug

  2. hybris重新启动后,
  3. NullPointerException的详细信息:

    由com.sun.beans.TypeResolver.resolve(TypeResolver.java:203)上的java.lang.NullPointerException引起。 com.sun.beans.TypeResolver.resolve(TypeResolver.java:218)〜[?:1.8.0_181]处com.sun.beans.TypeResolver.resolve(TypeResolver.java:169)〜[?:1.8。 com.sun.beans.TypeResolver.resolve(TypeResolver.java:162)〜[?:1.8.0_181]处com.sun.beans.TypeResolver.resolve(TypeResolver.java:218)〜[?:1.8。 0_181]在com.sun.beans.TypeResolver.resolveInClass(TypeResolver.java:96)〜[?:1.8.0_181]在java.beans.FeatureDescriptor.getParameterTypes(FeatureDescriptor.java:387)〜[?:1.8.0_181] 在java.beans.MethodDescriptor.setMethod(MethodDescriptor.java:116)〜[?:1.8.0_181]在java.beans.MethodDescriptor。(MethodDescriptor.java:72)〜[?:1.8.0_181]在java.beans中。 MethodDescriptor。(MethodDescriptor.java:56)〜[?:1.8.0_181]在java.beans.Introspector.getTargetMethodInfo(Introspector.java:1205)〜[?:1.8.0_181]在java.beans.Introsp ector.getBeanInfo(Introspector.java:426)〜[?:1.8.0_181]在java.beans.Introspector.getBeanInfo(Introspector.java:173)〜[?:1.8.0_181]在org.springframework.beans.CachedIntrospectionResults。 (CachedIntrospectionResults.java:279)〜[spring-beans-4.3.17.RELEASE.jar:4.3.17.RELEASE]

  4. 向JVM添加了" -XX:+ TraceClassLoading"

  5. 在异常本身之前可以看到,某些类是由Dynatrace检测的

    jvm 1 | 主| 2018/10/23 16:17:29.449 | [从dynaTrace中加载com.hybris.backoffice.excel.data.ExcelWorkbook $$ dtt]信息| jvm 1 | 主| 2018/10/23 16:17:29.449 | [从dynaTrace加载com.hybris.backoffice.excel.data.ExcelWorksheet $$ dtt]

我们也尝试过先禁用所有自定义扩展名,但是没有成功。 该问题可能是由Dynatrace引起的,是基于日志输出的猜测。

谢谢,这很痛苦...

95年老男孩
3楼-- · 2020-09-07 03:45

切换到" OneAgent "(而不是" JavaAgent")重新运行。 使用" JavaAgent"时,Dynatrace支持人员建议的其他选项是设置标志

  com.dynatrace.diagnostics.core.instrumentation.enableJava8Transformations = false

  

遵循说明 https://community .dynatrace.com/community/display/DTKB/Setting + a + DynaTrace + Collector + Debug + Flag

这将消除问题,但不会使用lambda来检测java8类,这在我的选择中是非常不希望的。

DafaDDDa
4楼-- · 2020-09-07 03:30

嗨,我们正面临着同样的问题...您是否已经找到了? 原因?

打个大熊猫
5楼-- · 2020-09-07 03:35

嗨,我们遇到了同样的问题。 希望这个问题能在短期内解决。

暮风yp
6楼-- · 2020-09-07 03:56

嗨,我们面临着同样的问题。 在本例中,此问题是由Dynatrace代理引起的,因为我们的dynatrace服务器为7.0.x。 来自Dynatrace支持的信息:CX1811仅与Dynatrace 7.2.x一起使用。 因此,我们需要更新Dynatrace。 Dynatracw 7.0.x的解决方法是设置:

  com.dynatrace.diagnostics.core.instrumentation.enableJava8Transformations = false
  

但是有了它,我们不能再分析所有的lambda了! 它并不能真正帮助我们,因此,我们只有一种方法:将Dynatrace更新为7.2.x。

一周热门 更多>