点击此处---> 群内免费提供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] ...
嗨,这是可以复制的。 创建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
嗨,
您找到原因了吗?
我们也面临着同样的问题。
一周热门 更多>