EDI转Java对象时遇Smooks解析错误:终止符%NL;未找到
EDI转Java对象时遭遇Smooks解析错误
问题详情
尝试将以下EDI数据转换为Java对象:
HDR*1*0*59.97*64.92*4.95*Wed Nov 15 13:45:28 EST 2006 CUS*user1*Harry^Fletcher*SD ORD*1*1*364*The 40-Year-Old Virgin*29.98 ORD*2*1*299*Pulp Fiction*29.99
参考Smooks的EDI转Java示例项目实现,执行时抛出错误:
Caused by: org.smooks.api.SmooksException: Parse Error: Failed to populate order-item[2]. Cause: Parse Error: Terminator '%NL;' not found
直接运行该示例项目,同样触发相同错误。
常见解决思路
- 核对EDI配置文件(如
.edi格式的模型定义文件)中的行终止符设置:示例项目可能默认使用%NL;作为换行终止标记,但你的EDI数据使用的是标准换行符(\n),需将配置中的终止符修改为与实际数据匹配的格式。 - 确认Smooks配置里的EDI模型与你的数据结构完全匹配:重点检查ORD段的重复规则、字段数量、分隔符(包括字段分隔符
*、复合字段分隔符^)是否和配置一致。 - 检查输入EDI数据的完整性:确认最后一行是否存在换行,或是否有字段缺失、格式错乱的情况。
内容的提问来源于stack exchange,提问作者Pooja
相关产品推荐
相关产品推荐

