我有一个正在使用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 {
}
}
修剪的配置方式是否有所更改,或者我还缺少其他内容?
谢谢!
答案 0 :(得分:1)
我只是遇到了同样的问题。默认情况下,固定长度记录会向右对齐。从版本2.18开始,在这种情况下,仅修剪记录左侧的填充字符。如果填充字符始终在右侧,则可以将记录左对齐align =“ L”。如果您只想修剪所有与对齐方式无关的内容,则可以从版本2.20开始使用align =“ B”。这是相关的更改:https://github.com/apache/camel/commit/26aa4e8f14cac9dcdaa8f369a8045b8e8df56f1e#diff-24aaa851bf960dc4d2e04c5fbbf8aada