问题标签 [bean-io]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2857 浏览

csv - 如何使用 camel-beanio 跳过 CSV 标题行

从 apache 使用 camel-beanio 时如何跳过 CSV 标题行?

我用于映射的 XML 文件如下所示:

但要让我的代码运行,我必须手动删除第一行(标题行)。如何自动跳过标题行?

0 投票
1 回答
921 浏览

spring - Beanio 中格式或所需属性的条件验证

我需要根据 beanmapper 配置中的另一个字段有条件地验证格式或 required=true/false。例子:

条件场景 1:对于 updateType="A",我需要 firstName 不为空(不是所有空格,因为这是固定长度的格式记录),对于 updateType="C",firstName 必须全为空白。

条件场景2:对于firstName=some value,lastName也必须有一些值(非空白)

我怎样才能在 Beanio 中实现这一点?我正在使用 spring-batch 3x 来执行我的工作。

0 投票
1 回答
2400 浏览

java - 使用 BeanIO 将空白字符串解组为 null

BeanIO 参考指南指出,对于固定长度的流:

如果 required 设置为 false,则无论填充字符如何,都会将空格解组为空字段值。

因此,如果我对这句话的理解正确,则意味着该 pojo 应该通过以下测试:

考试:

但它失败了,这 5 个空格被解组为一个空字符串。我错过了什么?如何将空格解组为空字符串?

0 投票
1 回答
325 浏览

apache-camel - 战外骆驼beanio映射文件

我正在使用camel beanio 组件来编组和解组文件中的数据。

它在tomcat中工作正常,但在jboss中不工作。所以我需要将beanio映射xml保留在war文件之外。通过提及映射属性的映射xml文件的实际路径,它工作正常。但我需要从环境变量或属性文件中获取 beanio 映射 xml 路径。因此,通过以下更改,

或者

我得到 org.apache.camel.RuntimeCamelException: java.io.FileNotFoundException

环境变量/属性没有被实际值替换。使用的骆驼版本是 2.12.1

我该如何解决这个问题?

0 投票
2 回答
7184 浏览

java - 使用 BeanIO 将列表写入 CSV

我正在尝试使用 BeanIO 框架将数据列表写入 CSV。我能够将单个对象写入 CSV,但无法写入数据列表。

我尝试了以下代码:

我期望 CSV 中的结果遵循以下格式:

例如:

有人可以帮帮我吗?

0 投票
1 回答
426 浏览

java - Bean-IO、XML Doctype 和 XSD 的问题

我正在使用一个名为“beanio”的工具包来解析 Java 中的固定长度平面文件。使用该工具包,我需要使用 XML 文档定义文件格式。我可以参考 beanio 网站上的架构位置,但我更愿意使用本地副本。原因是我想确保万一网站发生任何事情,我将有一个工作程序。

我的问题是,当我尝试在本地引用 xsd 文件时,SAX 引擎会引发有关格式错误的 xml / 定义的错误。以下将起作用:

但是,以下内容不会:

这些文件,mapping.xsd,无论是在本地还是在 Internet 上引用,都是完全相同的

抛出的错误如下:

这非常令人沮丧。用于 java 的平面文件解析的工具包非常陈旧且过时。我已经尝试了其中的四个,其中一些要么没有可用的 API,要么它们依赖于外部 DTD/XSD 定义,这导致我遇到了同样的问题。

我对 XML 的理解足够好,至少我是这么想的,但我不确定这里有什么问题。

0 投票
1 回答
439 浏览

java - 如何在 BeanIO 中引用外部 xml 文件?

我一直在阅读 BeanIO 的模板部分,但我没有找到任何特定于带有模板的外部文件的内容。基本上,我正在尝试创建一个 xml 文件,该文件将包含我的所有模板并从其他文件中引用特定模板。

我有这个文件 mytemplates.xml

我还有另一个名为 myfile.xml 的文件,它将使用 mytemplates.xml 中的模板

有没有办法做到这一点?

0 投票
1 回答
1759 浏览

java - SpringBatch 在一个项目上重复调用处理器

我们正在使用 Spring Batch 将管道分隔的文件 ETL 到数据库中。文件中的每条记录都有许多字段,并由 ClaimNumber 标识:

在批处理步骤中,使用了常规的读取-处理-写入流程:

阅读器利用BeanIOFlatFileItemReader

处理器阶段封装了项目验证:

写入是复合的:

在上面的处理/验证步骤中,ValidationProcessor确定记录的类型,基于它实例化一个适当的复合验证器(MedicalClaimsValidator在这种情况下),其中配置了该类型的所有单独验证(复合模式),HCPCSCodeLength在下面的日志。

虽然每个项目(声明)都通过此基础设施进行验证,但发现的错误会累积到项目的errors字段中 -Map<String, Collection<String>>其中特定验证的失败由该验证名称作为关键字并在 Map 的值中进行描述。

这让我想到了我们所看到的错误行为的描述:

在仔细检查上述包含 3 条索赔记录的测试 CSV 文件的负载后,我们发现了以下(奇怪的!?)行为,即每条记录都经过与其在文件中的序号一样多的验证次数。如下所示:第一条记录(声明)被验证一次,导致错误映射中的一条记录;第二条记录(声明)经过两次验证,并且它的错误映射现在包含重复两次的消息;第 3 条记录被验证 3 次,导致错误映射的条目重复 3 次相同的消息。

文件中的每条记录在其无效性方面几乎相同,因此预期结果是每条记录都应具有相同的错误集合。

实际结果是错误的值随着每个后续记录而不断增加:

第一条记录:

第二条记录

第三条记录

使用的版本:

问题:

如果有什么东西让 Spring Batch 在处理器上发出这些重复调用,那是 Spring Batch 的正常行为,以及如何阻止它并实现我上面描述的所需行为?

更新:

此验证组件表现出错误行为:

以下解决方法隐藏了错误行为:

对于为什么会首先发生这种行为,我仍然一无所知——对此的任何解释当然都是受欢迎的。

0 投票
1 回答
513 浏览

java - 如何在 beanio 的同一值上使用多个 @Field?

org.beanio用来解析固定长度的记录。

不幸的是,有些price价格的整数部分和小数部分分布到不同的位置。

问题:是否可以将两个@Fields 定义为一个值,并提取BigDecimal通孔的不同部分format

0 投票
1 回答
363 浏览

java - Bean IO:CAPS 中的日期 MMM 无法解析

我有一个"28NOV2015"大写的ddMMMyyyy日期MMM

解析日期时出现以下错误

线程“主”org.springframework.core.convert.ConversionFailedException 中的异常:无法从类型 [java.lang.String] 转换为值 '28NOV2015' 的类型 [java.util.Date];嵌套异常是 java.lang.IllegalArgumentException

通过将其作为字符串然后强制转换来解决它是显而易见的并且已经完成了。

有什么方法可以直接解析它。