0

我有一个使用 Bindy 2.17 的课程,但是在迁移到 Camel 2.21.2 后,当我解组时它不再修剪传入的数据。

我已经尝试向paddingChar记录注释添加一个属性,但这没有任何效果,并且因为它是我试图修剪的空格,所以paddingChar无论如何它应该是默认值。

我的课是这样的

@FixedLengthRecord( header = MyClass.MyHeader.class, footer = MyClass.MyFooter.class, skipHeader = true, skipFooter = true, ignoreTrailingChars = true, crlf="WINDOWS", paddingChar = ' ' )
public class MyClass{

    @DataField( pos = 1, length = 2, trim = true )
    private String field1;

    @DataField( pos = 2, length = 15, trim = true )
    private String field2;

    @DataField( pos = 3, length = 15, trim = true )
    private String field3;

    @FixedLengthRecord( ignoreTrailingChars = true )
    public static class MyHeader {

    }

    @FixedLengthRecord( ignoreTrailingChars = true)
    public static class MyFooter {

    }

}

配置修剪的方式是否发生了变化,或者我还缺少其他什么?

谢谢!

4

1 回答 1

1

我只是有同样的问题。默认情况下,固定长度的记录向右对齐。从版本 2.18 开始,在这种情况下,只修剪记录左侧的填充字符。如果您的填充字符始终在右侧,您可以使用 align="L" 将记录左对齐。如果您只想修剪与对齐无关的所有内容,则可以从 2.20 版本开始使用 align="B"。以下是相关更改:https ://github.com/apache/camel/commit/26aa4e8f14cac9dcdaa8f369a8045b8e8df56f1e#diff-24aaa851bf960dc4d2e04c5fbbf8aada

于 2019-05-09T22:26:01.323 回答