场景1
跳过监听器界面如下:
public interface SkipListener<T,S> extends StepListener {
void onSkipInRead(Throwable t);
void onSkipInProcess(T item, Throwable t);
void onSkipInWrite(S item, Throwable t);
}此接口最适合用于记录跳过的项和错误。
可以获得输入中跳过的项目的编号。例如,如果输入中的第10项被跳过,我应该能够记录“第10项被跳过!”通过上面的监听器。
我需要它,因为我将输入作为一个文件,其中的行没有任何标识键。因此,仅通过注销项目,就不可能在文件中锁定项目本身。
如果输入的是数据库表而不是文件怎么办?在那里也可以得到跳过的物品的位置号吗?
场景2
我的bean有三个属性,一、二和三(都是字符串),通过适当的行映射器从文件中读取输入,然后在经过一些处理后用数据加载数据库表。
以下是来自处理器的代码块:
if(two.charAt(4) == '_')
{ // do some processing }显然,如果上述文件中的字段2为空,块将抛出"string index out of bound exception“,并将被跳过。
因此,在跳过侦听器中,我需要的是抛出错误的列的信息。
在这里,由于名为2的字段给出了错误,我想要登录跳过侦听器的信息将类似于"property one抛出错误“字符串索引越界异常”in line number 10“,或者如果可能的话,更具体的"Property one is empty in line number 10”,这对于不懂java行话的企业来说更有意义。
希望我说清楚了我的疑虑。
感谢您的阅读!
发布于 2012-02-28 01:58:24
场景1
要从读取文件中获取跳过项目的行号,可以执行以下操作:
相同
要从读取表中获取跳过项目的行号,您可以执行以下操作:
相同
场景2
请参阅场景1并在处理器中添加try/catch块,因此您可以抛出自己的异常,例如使用有关属性位置的信息,或者以类似的方式更改步骤上下文
https://stackoverflow.com/questions/9378160
复制相似问题