我们已经集成了 Websphere 以支持 Camel 集成,并且我们已经建立了 DOM 库存模型。因此,当用户到达产品页面并选择一个项目时,会对 Camel 集成框架进行外部调用,并更新 Commerce 的 INVAVL 表。
但是在页面中,库存状态仍然显示为不可用。但是,如果再次选择相同的产品,它会显示为可用,因为第二个请求是直接向数据库发出的,而不是 Camel 请求。
有什么解决办法吗?
我们已经集成了 Websphere 以支持 Camel 集成,并且我们已经建立了 DOM 库存模型。因此,当用户到达产品页面并选择一个项目时,会对 Camel 集成框架进行外部调用,并更新 Commerce 的 INVAVL 表。
但是在页面中,库存状态仍然显示为不可用。但是,如果再次选择相同的产品,它会显示为可用,因为第二个请求是直接向数据库发出的,而不是 Camel 请求。
有什么解决办法吗?
当 Commerce 调用外部系统时,它会返回由外部系统返回的对象,而不是它存储在其缓存中的对象。
如果外部系统没有提供完整的信息集,那么这会在行为上产生一些差异,该商业本身适用于库存响应。
为什么会这样,我不太清楚,但我观察到它是真的。它还会影响实体店库存显示,因为外部系统将填充库存记录的外部标识符,而仅缓存版本不会。jsps 期望它在那里。
所以第一次运行,看起来不错,但随后的执行将显示没有库存。
最简单的调试方法是使用 Soap UI 在 WCS 上调用 GetInventoryAvailability
a) 不存在现有缓存条目和 b) 当存在现有缓存条目时。
然后摆弄骆驼响应,直到它与 b) 中返回的响应相匹配。
通常,您认为它的字段很重要,例如 StoreIdentifier 和 AvailabilityTime。