Не выполняется Spring Batch Item Processor

Я создаю задание Spring Batch, используя шаблон Spring Batch, включенный в STS 2.81, и примеры из Spring Batch in Action от Мэннинга. Я могу без проблем запустить программу чтения и записи фрагментов, но мой код пропускает процессор. Я даже попытался обнулить все объекты, когда он попадает в процессор, и ничего, объекты все еще удается записать, как будто процессор игнорируется. Я попытался вызвать System.out.println в процессоре, но в терминале ничего не выводится. Наконец, я изменил конфигурацию с использования XML-компонента на компонент через аннотацию, и это тоже не сработало. Я не уверен, есть ли какой-то параметр, который мне не хватает ... Я следил за примерами как в Spring Batch in Action, так и с веб-сайта SpringSource, и все выглядит нормально ... помогите!

Вот код:

<batch:job id="job1">
    <batch:step id="step1"  >           
        <batch:tasklet transaction-manager="transactionManager" start-limit="100" >
            <batch:chunk reader="productFlatFileReader"
                         processor="productProcessor"
                         writer="productFlatFileWriter"
                         commit-interval="10" />
        </batch:tasklet>
    </batch:step>
</batch:job>

Вот компонент процессора:

<bean id="productProcessor" class="com.test.training.processors.ProductProcessor" />

Это класс процессора, который я пытаюсь выполнить безрезультатно:

package com.test.training.processors;

import org.springframework.batch.item.ItemProcessor;
import org.springframework.stereotype.Component;
import com.test.training.entities.Product;

public class ProductProcessor implements ItemProcessor<Product, Product> {

@Override
public Product process(Product product) throws Exception {
    product.setDescription("Processor is WORKING!");
    return product;
    //return this.validateProductByProductIdentifier(product) ? null : product;
}

private boolean validateProductByProductIdentifier(Product product) {
    return product.getProduct_identifier() == 5 ? true : false;
}
}

person user1724391    schedule 06.10.2012    source источник
comment
Вы можете поделиться своей конфигурацией productFlatFileReader?   -  person Serkan Arıkuşu    schedule 08.10.2012
comment
Как и просил Серкан, программа чтения плоских файлов и связанные с ней конфигурации преобразователя строк позволили бы лучше понять проблему. Является ли объект, построенный из каждой строки плоского файла, также Продуктом?   -  person firefox784    schedule 16.10.2012


Ответы (1)


Конфигурация вашего bean-компонента должна иметь scope = "step", чтобы Spring Batch распознал bean-компонент как пакетный bean-компонент.

Нравиться:

<bean id="productProcessor" scope="step" class="com.test.training.processors.ProductProcessor" />
person ahaaman    schedule 10.09.2013