Hybris初始化期间的ClassCastException

2020-09-14 06:54发布

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

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


大家好,

在通过 ant initialize 初始化hybris期间,抛出了ClassCastException,并且它卡在了初始化进程中。

我们使用的hybris版本是 6.6.0.0 。 该异常是随机抛出的,因此下次我启动init时,该过程可以继续进行,不会出现任何问题。 在不同的本地工作站以及服务器实例上引发此异常。 数据库也不是问题,因为它可以在MySQL,SAP Hana,HSQLD上重现。

当前,我们只想自定义 RemoveDataOnSetURLPrepareInterceptor ,但我很好奇是否有人知道此问题的根本原因?

  [java] [m de.hybris.platform.servicelayer.exceptions.ModelSavingException:[de.hybris.platform.media.interceptors.RemoveDataOnSetURLPrepareInterceptor@41945ff2]:意外的准备错误:无法转换类de.hybris  .platform.core.model.audit.AuditReportConfigModel来分类de.hybris.platform.core.model.media.MediaModel
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokePrepareInterceptors(ModelWrapper.java:279)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.executeInterceptorsAndCascade(ModelWrapper.java:108)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.extractor.impl.DefaultModelExtractor.process(DefaultModelExtractor.java:44)〜[coreserver.jar :?]
       [java] at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:720)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:715)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:695)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.save(DefaultModelService.java:643)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.audit.internal.config.DefaultAuditConfigService.storeConfiguration(DefaultAuditConfigService.java:137)〜[coreserver.jar :?]
       [java] at de.hybris.platform.audit.internal.config.DefaultAuditConfigService.storeConfiguration(DefaultAuditConfigService.java:125)〜[coreserver.jar :?]
       [java] at java.util.HashMap $ Values.forEach(HashMap.java:981)〜[?:1.8.0_152]
       [java]位于de.hybris.platform.audit.internal.config.DefaultAuditConfigService.storeConfigurations(DefaultAuditConfigService.java:101)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.Initialization.storeGenericAuditConfigurations(Initialization.java:1008)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.Initialization.doInitializeImpl(Initialization.java:569)〜[coreserver.jar :?]
       [java] de.hybris.platform.core.Initialization.access $ 5(Initialization.java:466)〜[coreserver.jar :?]
       [java] de.hybris.platform.core.Initialization $ 5.call(Initialization.java:787)〜[coreserver.jar :?]
       [java] de.hybris.platform.core.Initialization $ 5.call(Initialization.java:1)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.system.InitializationLockHandler.performLocked(InitializationLockHandler.java:80)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.Initialization.doInitialize(Initialization.java:819)〜[coreserver.jar :?]
       [java] de.hybris.ant.taskdefs.InitPlatformAntPerformableImpl.performImpl(InitPlatformAntPerformableImpl.java:106)〜[coreserver.jar :?]
       [java]位于de.hybris.ant.taskdefs.AbstractAntPerformable.doPerform(AbstractAntPerformable.java:92)[coreserver.jar :?]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)〜[?:1.8.0_152]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[?:1.8.0_152]
       [java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[?:1.8.0_152]
       [java] at java.lang.reflect.Method.invoke(Method.java:498)〜[?:1.8.0_152]
       [bsh.Reflect.invokeMethod(Reflect.java:134)上的[java] [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java]位于bsh.Reflect.invokeObjectMethod(Reflect.java:80)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.Name.invokeMethod(Name.java:858)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java]位于bsh.Interpreter.eval(Interpreter.java:645)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.Interpreter.eval(Interpreter.java:739)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.Interpreter.eval(Interpreter.java:728)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java]位于de.hybris.platform.util.ClientExecuter.execute(ClientExecuter.java:49)[coreserver.jar :?]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)〜[?:1.8.0_152]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[?:1.8.0_152]
       [java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[?:1.8.0_152]
       [java] at java.lang.reflect.Method.invoke(Method.java:498)〜[?:1.8.0_152]
       [java]位于de.hybris.bootstrap.loader.Loader.execute(Loader.java:142)[ybootstrap.jar :?]
       [java]位于de.hybris.bootstrap.loader.Loader.main(Loader.java:118)[ybootstrap.jar :?]
       [java]原因:java.lang.ClassCastException:无法将类de.hybris.platform.core.model.audit.AuditReportConfigModel强制转换为类de.hybris.platform.core.model.media.MediaModel
       [java] de.hybris.platform.media.interceptors.RemoveDataOnSetURLPrepareInterceptor.onPrepare(RemoveDataOnSetURLPrepareInterceptor.java:1)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokePrepareInterceptors(ModelWrapper.java:270)〜[coreserver.jar :?]
       [java] ...还有39个
       [java]原因:源文件:内联评估:``de.hybris.ant.taskdefs.AntPerformable p = new de.hybris.ant.taskdefs.InitPlatfor。  。  。  '':方法调用p.doPerform:第2行:在文件中:在线评估:``de.hybris.ant.taskdefs.AntPerformable p =新的de.hybris.ant.taskdefs.InitPlatfor。  。  。  '':p .doPerform()
       [java]
       [java]目标异常:de.hybris.platform.servicelayer.exceptions.ModelSavingException:[de.hybris.platform.media.interceptors.RemoveDataOnSetURLPrepareInterceptor@41945ff2]:意外的准备错误:无法转换类de.hybris.platform.core.model  .audit.AuditReportConfigModel到de.hybris.platform.core.model.media.MediaModel类
       [java]
       [java]位于bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
       [java]位于bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
       [java]位于bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
       [java]位于bsh.Interpreter.eval(Interpreter.java:645)
       [java]位于bsh.Interpreter.eval(Interpreter.java:739)
       [java]位于bsh.Interpreter.eval(Interpreter.java:728)
       [java]位于de.hybris.platform.util.ClientExecuter.execute(ClientExecuter.java:49)
       [java] ...还有6个





  

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

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


大家好,

在通过 ant initialize 初始化hybris期间,抛出了ClassCastException,并且它卡在了初始化进程中。

我们使用的hybris版本是 6.6.0.0 。 该异常是随机抛出的,因此下次我启动init时,该过程可以继续进行,不会出现任何问题。 在不同的本地工作站以及服务器实例上引发此异常。 数据库也不是问题,因为它可以在MySQL,SAP Hana,HSQLD上重现。

当前,我们只想自定义 RemoveDataOnSetURLPrepareInterceptor ,但我很好奇是否有人知道此问题的根本原因?

  [java] [m de.hybris.platform.servicelayer.exceptions.ModelSavingException:[de.hybris.platform.media.interceptors.RemoveDataOnSetURLPrepareInterceptor@41945ff2]:意外的准备错误:无法转换类de.hybris  .platform.core.model.audit.AuditReportConfigModel来分类de.hybris.platform.core.model.media.MediaModel
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokePrepareInterceptors(ModelWrapper.java:279)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.executeInterceptorsAndCascade(ModelWrapper.java:108)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.extractor.impl.DefaultModelExtractor.process(DefaultModelExtractor.java:44)〜[coreserver.jar :?]
       [java] at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:720)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:715)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:695)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.save(DefaultModelService.java:643)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.audit.internal.config.DefaultAuditConfigService.storeConfiguration(DefaultAuditConfigService.java:137)〜[coreserver.jar :?]
       [java] at de.hybris.platform.audit.internal.config.DefaultAuditConfigService.storeConfiguration(DefaultAuditConfigService.java:125)〜[coreserver.jar :?]
       [java] at java.util.HashMap $ Values.forEach(HashMap.java:981)〜[?:1.8.0_152]
       [java]位于de.hybris.platform.audit.internal.config.DefaultAuditConfigService.storeConfigurations(DefaultAuditConfigService.java:101)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.Initialization.storeGenericAuditConfigurations(Initialization.java:1008)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.Initialization.doInitializeImpl(Initialization.java:569)〜[coreserver.jar :?]
       [java] de.hybris.platform.core.Initialization.access $ 5(Initialization.java:466)〜[coreserver.jar :?]
       [java] de.hybris.platform.core.Initialization $ 5.call(Initialization.java:787)〜[coreserver.jar :?]
       [java] de.hybris.platform.core.Initialization $ 5.call(Initialization.java:1)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.system.InitializationLockHandler.performLocked(InitializationLockHandler.java:80)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.core.Initialization.doInitialize(Initialization.java:819)〜[coreserver.jar :?]
       [java] de.hybris.ant.taskdefs.InitPlatformAntPerformableImpl.performImpl(InitPlatformAntPerformableImpl.java:106)〜[coreserver.jar :?]
       [java]位于de.hybris.ant.taskdefs.AbstractAntPerformable.doPerform(AbstractAntPerformable.java:92)[coreserver.jar :?]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)〜[?:1.8.0_152]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[?:1.8.0_152]
       [java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[?:1.8.0_152]
       [java] at java.lang.reflect.Method.invoke(Method.java:498)〜[?:1.8.0_152]
       [bsh.Reflect.invokeMethod(Reflect.java:134)上的[java] [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java]位于bsh.Reflect.invokeObjectMethod(Reflect.java:80)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.Name.invokeMethod(Name.java:858)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java]位于bsh.Interpreter.eval(Interpreter.java:645)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.Interpreter.eval(Interpreter.java:739)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java] at bsh.Interpreter.eval(Interpreter.java:728)[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
       [java]位于de.hybris.platform.util.ClientExecuter.execute(ClientExecuter.java:49)[coreserver.jar :?]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)〜[?:1.8.0_152]
       [java]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[?:1.8.0_152]
       [java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[?:1.8.0_152]
       [java] at java.lang.reflect.Method.invoke(Method.java:498)〜[?:1.8.0_152]
       [java]位于de.hybris.bootstrap.loader.Loader.execute(Loader.java:142)[ybootstrap.jar :?]
       [java]位于de.hybris.bootstrap.loader.Loader.main(Loader.java:118)[ybootstrap.jar :?]
       [java]原因:java.lang.ClassCastException:无法将类de.hybris.platform.core.model.audit.AuditReportConfigModel强制转换为类de.hybris.platform.core.model.media.MediaModel
       [java] de.hybris.platform.media.interceptors.RemoveDataOnSetURLPrepareInterceptor.onPrepare(RemoveDataOnSetURLPrepareInterceptor.java:1)〜[coreserver.jar :?]
       [java]位于de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokePrepareInterceptors(ModelWrapper.java:270)〜[coreserver.jar :?]
       [java] ...还有39个
       [java]原因:源文件:内联评估:``de.hybris.ant.taskdefs.AntPerformable p = new de.hybris.ant.taskdefs.InitPlatfor。  。  。  '':方法调用p.doPerform:第2行:在文件中:在线评估:``de.hybris.ant.taskdefs.AntPerformable p =新的de.hybris.ant.taskdefs.InitPlatfor。  。  。  '':p .doPerform()
       [java]
       [java]目标异常:de.hybris.platform.servicelayer.exceptions.ModelSavingException:[de.hybris.platform.media.interceptors.RemoveDataOnSetURLPrepareInterceptor@41945ff2]:意外的准备错误:无法转换类de.hybris.platform.core.model  .audit.AuditReportConfigModel到de.hybris.platform.core.model.media.MediaModel类
       [java]
       [java]位于bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
       [java]位于bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
       [java]位于bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
       [java]位于bsh.Interpreter.eval(Interpreter.java:645)
       [java]位于bsh.Interpreter.eval(Interpreter.java:739)
       [java]位于bsh.Interpreter.eval(Interpreter.java:728)
       [java]位于de.hybris.platform.util.ClientExecuter.execute(ClientExecuter.java:49)
       [java] ...还有6个





  
付费偷看设置
发送
10条回答
SAP砖家
1楼-- · 2020-09-14 07:12

大家好,在初始化系统时,我还在新的6.7.0(从6.6.0升级)上面临这个问题。

无法将de.hybris.platform.core.model.audit.AuditReportConfigModel类转换为de.hybris.platform.core.model.media.MediaModel类

这种情况并非总是会发生,但是初始化会在此错误后退出,使数据库处于不一致状态。

RemoveDataOnSetURLPrepareInterceptor 被映射为媒体项目的"准备Intercerptor"(请参阅​​ media-spring.xml ),但显然是一个 AuditReportConfigModel 实例IS 不是媒体; 它扩展了 AbstractDynamicContentModel ,后者本身直接扩展了 ItemModel

所以,我很确定这是一个开箱即用的错误。

由于似乎没有办法取消保存此审计报告的功能,因此我将(不情愿地)实施。提到的解决方法检查。

致谢。

四川大学会员
2楼-- · 2020-09-14 07:24

谢谢您的MyKyta ..它奏效了:)

四川大学会员
3楼-- · 2020-09-14 07:36

嘿,我也遇到了这个问题,请尝试删除您的数据库并创建一个 新的,然后对蚂蚁进行初始化。 为我工作。

悠然的二货
4楼-- · 2020-09-14 07:28

您可以确认问题是在6.6.x上开发时还是仅在从6.6.x切换到6.7.x时出现的吗?

还:仅在平台/有限的设置中或仅在包含加速器时才显示错误吗?

这绝对有助于找到根本原因。

谢谢Axel

xfwsx85
6楼-- · 2020-09-14 07:26

在CentOS上使用Mysql于6.7上复制。 并非一直如此。 无法使用hsqldb在Windows上重现。

一周热门 更多>