Hybris中的UniqueAttributesInterceptor故障,商务CX 1808:

2020-08-21 08:55发布

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

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


最近,我们将hybris 5.7.x更新为hybris Commerce cx 1808(补丁9)。在cx 1808中,添加了" DefaultPromotionsService.saveIfModified()",这会导致调用UniqueAttributesInterceptor并偶尔失败。 我找不到错误的根源,它是随机发生的,占购物车所有"保存"调用的3%。

此错误在checkout/placeOrder中非常重要。 我无法在本地重现该错误。

任何想法可能对它负责或对如何避免它的建议,将不胜感激。 禁用" UniqueAttributesInterceptor"是否安全?

非常感谢,维塔利

错误[ajp-nio-18009-exec-1060] [de.hybris.platform.servicelayer.interceptor.impl.UniqueAttributesInterceptor@1a3002ea]:Unklare eindeutige Schl ?? sse:{entryNumber = 2,order = CartModel(9684739457067)  @ 141)} f?r Modell CartEntryModel(8900165697580 @ 3)-1产品信息密集的Schl ?? sseln gefunden-网址:http://somecompany.com/checkout/完成参照:https://somecompany.com/checkout /更新
  de.hybris.platform.servicelayer.exceptions.ModelSavingException:[de.hybris.platform.servicelayer.interceptor.impl.UniqueAttributesInterceptor@1a3002ea]:取消保留电子表格Schsse:{entryNumber = 2,order = CartModel(9684739457067 @ 141)  } f?r Modell CartEntryModel(8900165697580 @ 3)-1产品和技术密集的Schl ?? sseln gefunden
         在de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokeValidateInterceptors(ModelWrapper.java:302)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.validate(ModelWrapper.java:239)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.extractor.impl.DefaultModelExtractor.process(DefaultModelExtractor.java:57)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:720)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:715)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:695)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:657)〜[coreserver.jar :?]
         在de.hybris.platform.promotions.impl.DefaultPromotionsService.saveIfModified(DefaultPromotionsService.java:271)〜[promotionsserver.jar :?]
         在de.hybris.platform.promotions.impl.DefaultPromotionsService.transferPromotionsToOrder(DefaultPromotionsService.java:214)〜[promotionsserver.jar :?]
         在de.hybris.platform.commerceservices.order.impl.DefaultCommercePlaceOrderStrategy.placeOrder(DefaultCommercePlaceOrderStrategy.java:116)〜[commerceservicesserver.jar :?]
         在de.hybris.platform.commerceservices.order.impl.DefaultCommerceCheckoutService.placeOrder(DefaultCommerceCheckoutService.java:320)〜[commerceservicesserver.jar :?]
         在de.hybris.platform.commerceservices.order.impl.DefaultCommerceCheckoutService.placeOrder(DefaultCommerceCheckoutService.java:314)〜[commerceservicesserver.jar :?]
         在de.s2.hfg.core.services.HfgCommerceCheckoutService $ 1.doInTransaction(HfgCommerceCheckoutService.java:156)〜[HFGcoreserver.jar :?]
         在de.s2.hfg.core.services.HfgCommerceCheckoutService $ 1.doInTransaction(HfgCommerceCheckoutService.java:1)〜[HFGcoreserver.jar :?]
         在org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)〜[spring-tx-4.3.21.RELEASE.jar:4.3.21.RELEASE]
 ...
 

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

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


最近,我们将hybris 5.7.x更新为hybris Commerce cx 1808(补丁9)。在cx 1808中,添加了" DefaultPromotionsService.saveIfModified()",这会导致调用UniqueAttributesInterceptor并偶尔失败。 我找不到错误的根源,它是随机发生的,占购物车所有"保存"调用的3%。

此错误在checkout/placeOrder中非常重要。 我无法在本地重现该错误。

任何想法可能对它负责或对如何避免它的建议,将不胜感激。 禁用" UniqueAttributesInterceptor"是否安全?

非常感谢,维塔利

错误[ajp-nio-18009-exec-1060] [de.hybris.platform.servicelayer.interceptor.impl.UniqueAttributesInterceptor@1a3002ea]:Unklare eindeutige Schl ?? sse:{entryNumber = 2,order = CartModel(9684739457067)  @ 141)} f?r Modell CartEntryModel(8900165697580 @ 3)-1产品信息密集的Schl ?? sseln gefunden-网址:http://somecompany.com/checkout/完成参照:https://somecompany.com/checkout /更新
  de.hybris.platform.servicelayer.exceptions.ModelSavingException:[de.hybris.platform.servicelayer.interceptor.impl.UniqueAttributesInterceptor@1a3002ea]:取消保留电子表格Schsse:{entryNumber = 2,order = CartModel(9684739457067 @ 141)  } f?r Modell CartEntryModel(8900165697580 @ 3)-1产品和技术密集的Schl ?? sseln gefunden
         在de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokeValidateInterceptors(ModelWrapper.java:302)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.validate(ModelWrapper.java:239)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.extractor.impl.DefaultModelExtractor.process(DefaultModelExtractor.java:57)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:720)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:715)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:695)〜[coreserver.jar :?]
         在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:657)〜[coreserver.jar :?]
         在de.hybris.platform.promotions.impl.DefaultPromotionsService.saveIfModified(DefaultPromotionsService.java:271)〜[promotionsserver.jar :?]
         在de.hybris.platform.promotions.impl.DefaultPromotionsService.transferPromotionsToOrder(DefaultPromotionsService.java:214)〜[promotionsserver.jar :?]
         在de.hybris.platform.commerceservices.order.impl.DefaultCommercePlaceOrderStrategy.placeOrder(DefaultCommercePlaceOrderStrategy.java:116)〜[commerceservicesserver.jar :?]
         在de.hybris.platform.commerceservices.order.impl.DefaultCommerceCheckoutService.placeOrder(DefaultCommerceCheckoutService.java:320)〜[commerceservicesserver.jar :?]
         在de.hybris.platform.commerceservices.order.impl.DefaultCommerceCheckoutService.placeOrder(DefaultCommerceCheckoutService.java:314)〜[commerceservicesserver.jar :?]
         在de.s2.hfg.core.services.HfgCommerceCheckoutService $ 1.doInTransaction(HfgCommerceCheckoutService.java:156)〜[HFGcoreserver.jar :?]
         在de.s2.hfg.core.services.HfgCommerceCheckoutService $ 1.doInTransaction(HfgCommerceCheckoutService.java:1)〜[HFGcoreserver.jar :?]
         在org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)〜[spring-tx-4.3.21.RELEASE.jar:4.3.21.RELEASE]
 ...
 
付费偷看设置
发送
2条回答
黑丝骑士
1楼-- · 2020-08-21 09:04

嗨,这是可以复制的。 创建3件商品的购物车。 然后,分别用值1、2和3手动更新每个购物车条目的条目号(在"信息"选项卡中)。 默认情况下,每个条目的条目号分别为0,1,2。

现在,当您提交订单时,placeOrder(final CartModel cartModel,final SalesApplication salesApplication)将调用getPromotionsService()。transferPromotionsToOrder(cartModel,orderModel,false)将促销从购物车转移到orderModel。

在此过程中,所有购物车条目的完整保存完成,并且保存之前验证条目号,

它将条目号值{0,1,2}替换为{1,2,3},就像

第一次更新-{0,2,3}-没有异常,因为0不在{1,2,3}上

第二次更新-{0,1,3}-发生异常,因为1已经是{1,2,3}的一部分

不确定随机情况下的入口编号如何,要么必须在调用之前更正入口编号,要么通过传递transferPromotionsToOrder()异常来覆盖下订单方法,然后继续

感谢
Praveen Babu



暮风yp
2楼-- · 2020-08-21 09:30

嗨,

您找到原因了吗?

我们也面临着同样的问题。

一周热门 更多>