问题标签 [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.
java - BeanIo 无法读取特殊字符
我有一个带有 ANSI (windows-1252) 编码的 .txt 文件,我可以在 windows 上读取它,但在 unix 上不行。
这是xml映射文件:
Java端:
结果:行:法国
line : S??o Paulo 应该是 (São Paulo) windows OK 但 unix 是 KO
线路:美国
线路:中国
任何想法 ?
仅供参考:我已经尝试将 Charset 设置为 UTF-8 java 端。
apache-camel - Camel-Beanio 找不到 Bean 类
我正在使用 apache-servicemix-7.0.0,并使用 camel-beanio (2.16.4)。
所以我定义了一个调用beanio来解析文件的路由。
但是,记录映射到的类位于外部 jar 中。
我尝试使用以下方法包装这个外部 jar:
它使它可用。
但是当我部署我的骆驼 blueprint.xml 时,它仍然会抛出:
“2017-05-24 15:57:51,566 | 错误 | mix-7.0.0/deploy | BlueprintCamelContext | 40 - org.apache.camel.camel-blueprint - 2.16.4 | 启动骆驼时发生错误:CamelContext(_context1)由于无效记录 'record',在流 'REALITY_FILE' 中:无效 bean 类 'za.co.sci.core.shared.RealityFileRecordModel' org.beanio.BeanIOConfigurationException:无效记录 'record',在流 'REALITY_FILE' 中:无效 bean在 org.beanio.internal.compiler.ProcessorSupport.process(ProcessorSupport.java:93)[232:org.beanio:2.1.0] 上的类 'za.co.sci.core.shared.RealityFileRecordModel' .... .. . 由:java.lang.ClassNotFoundException: za.co.sci.core.shared.RealityFileRecordModel 在 org.apache.felix.framework.BundleWiringImpl 中的 ESB-POC [257] 未找到。findClassOrResourceByDelegation(BundleWiringImpl.java:1 574)[org.apache.felix.framework-5.6.1.jar:]
" 附上我的蓝图,并附上骆驼映射 xml
任何想法如何让骆驼路线找到这门课?
谢谢,何塞
java - BeanIO定长记录中的键值映射
我有以下固定长度数据文件的规范(请参阅记录-C 类型规范,第 4 页)
第二部分,长度为 1,800 个字符,由一个包含 75 个元素的表格组成,用于显示通信中存在的唯一数据;这些元素中的每一个都由 8 个字符的字段代码和 16 个字符的字段值组成
这意味着前 89 个字符(在上面的摘要中省略)是普通的旧固定长度,然后,对于剩余的 1800 个,我必须将它们放入键值对组中,每个键值对最多计数 24 个字符。在此过程中会修剪空格并且不考虑空对。
理想情况下,我的 bean 可以像这样构造
某些东西可以是例如 Apache Common 的Pair<String,String>
或任何适合 KVP 映射的东西。
我知道我可以创建一个完整的 TypeHandler 来占用全部 1800 个字节,但我想利用 BeanIO 的强大功能。
这是我到目前为止所做的
不幸的是,这在测试中不起作用。我在列表中只得到一条记录,在 [0-7] 和 [8-23] 位置解码,而不是预期的 [89-113][114-???][....][.... ]
问题是:我如何在 BeanIO 中声明重复的固定长度字段?
newline - 在 BeanIo 导出上强制 CRLF
我想强制 BeanIO 在导出固定长度流时使用 CRLF 作为终止符。以下不起作用
我想容忍解析时的行尾,但想在导出时使用 CRLF。这实际上是一种 I/O 流格式。
这可能吗?
java - 无需删除文字即可编组详细记录
我有一个具有以下格式的固定长度文件。
X - 标题
Y - 拖车
数据记录没有任何标识符文字作为第一个字符。
样本数据:
标题记录被解析得很好。
问题:由于详细记录没有任何唯一标识符,拖尾记录被映射到详细记录。
如何区分预告片记录和详细记录?
bean-io - beanio customhandler 从不同的字段获取值
我有一个beanio xml文件,记录示例是这样的:
在“ynHandler”中,我想使用“RedemptionMode”值,然后我将使用“RedemptionMode”和“ConversionRate”做一些逻辑。
有谁知道如何编写处理程序以从“RedemptionMode”中获取价值?
谢谢!
java - 使用 BeanIO 和 Apache Camel 解组 InputStream
我有一个接收文件并将其发送到骆驼路线的服务。在这条路线上,我想使用 BeanIO 解组该文件,但它不能识别 InputStream 类型的输入。
我已经测试了一个使用 File 组件读取文件并将结果发送到 BeanIO 组件的路由。在这种情况下,它可以工作。
如何在 Apache Camel 上将 BeanIO 与 InputStream 类型的输入一起使用?是否有任何组件可以将我的 InputStream 转换为与 BeanIO 组件兼容的东西?
java - BeanIO InvalidRecordGroupException 给出错误的行号
我正在使用 BeanIO 来解析一个固定宽度的文本文件。例如,进入我的项目的文件看起来像以下固定宽度的文本:
在我的映射文件中,我record
为每个 recordID 声明了一个(即 AB、CD、EF)
然后我template
对每条记录都有一个:
因为value1
andvalue2
有 aminOccurs = 1
和 a required="true"
(是的,我知道这是多余的,但它已经在代码中并且我们有数千个这样的字段)如果我有 AB 段,它们必须存在。
因此,如果我要将以下文件传递到我的程序中:
我收到以下 InvalidRecordGroupException:
org.beanio.InvalidRecordGroupException: Invalid 'ediMessage' record group at line 1
但是,由于缺少的字段实际上位于第 3 行,因此当您有 500-600 行数据进入应用程序时,调试起来可能会非常痛苦。
有没有办法让 beanIO 输出正确的行号,或者在缺少必填字段时输出正确的值template
?field
java - 从 Xmappr 更改为 BeanIO
当我想用 Xmappr 注释为 java 类中的 XML 元素指定属性时,我使用 @Attribute 注释,例如:
示例类.java:
它正在映射品牌元素的属性代码
品牌.xml:
我的任务是将 Xmappr 注释更改为 BeanIO。
我可以使用 @Field 注释映射的单个元素(无属性),例如:
那么问题来了,如何使用 BeanIO将属性Code获取到 java 类?我需要将xml更改为:
而不是在Code上使用 @Field 注释,还是有其他方法可以做到这一点?
java - 如何使用 BeanIO 将 0 转换为 null
我的问题是如何将整数值0转换为null?以前我使用了 Xmappr 注释,它与这个注释配合得很好:
现在我必须使用BeanIO,所以我尝试了:
它不工作。
单元测试需要从 XML 文件中读取数字才能成功。如果 XML 中的 personNumber 等于 0,则必须将其作为空值写入数组。在这种情况下,数组应如下所示:[1,2,null]。
XML 文件:
之前在 Java 中的注解:
现在用 Java 注释:
难道是我必须在字段注释中指定格式的事情:
如果是这样,应该指定什么格式?