Spartacus配置时出现Max field set size exceeded错误如何解决
问题解决方法
该错误是SAP Commerce(Hybris)OCC接口的字段序列化限制触发的报错,可按以下步骤排查解决:
- 排查新增字段是否存在循环引用:若你新增的字段关联了其他DTO,且该DTO的字段集配置中存在反向指向ProductWSDTO的字段,会触发递归序列化,导致字段计数超出阈值。找到循环引用后,在被引用DTO的BASIC字段级配置中移除反向引用字段即可。
- 修正ProductWSDTO的字段集配置:在自定义webservices扩展的
fieldSetLevelMappingBean配置中,明确为ProductWSDTO的BASIC级别添加新增字段,禁止使用*通配符配置字段集,通配符会全量序列化所有关联字段极易触发阈值。参考配置:<bean class="de.hybris.platform.webservicescommons.mapping.config.FieldSetLevelMapping"> <property name="typeClass" value="com.yourcustom.dto.ProductWSDTO"/> <property name="levelMapping"> <map> <entry key="BASIC" value="code,name,price,yourNewField"/> <entry key="DEFAULT" value="BASIC,description,offlineTime"/> <entry key="FULL" value="DEFAULT,stock,media"/> </map> </property> </bean> - 校验Spartacus端的OCC请求配置:不要在PDP的产品接口请求中使用
fields=FULL这类全量字段参数,明确指定需要的字段,避免请求多余的嵌套层级字段。 - 若确认无循环引用且业务所需字段确实超出默认阈值,可在
local.properties中临时调高最大限制(生产环境不推荐直接使用此方法掩盖性能问题):webservicescommons.fieldSet.maxSize=2000
内容的提问来源于stack exchange,提问作者Rabia
相关产品推荐
相关产品推荐

