2

I get error stated in Title using following job conifuration file with ClassifierCompositItemWriter. Why is it not finding BackToBackPatternClassifier? I'm really new to this.

I'm using - Spring-core version 3.2.2.RELEASE - Spring batch version 2.2.0.RELEASE

<bean id="domain" class="com.my.OneData" />

<job id="readAsString" xmlns="http://www.springframework.org/schema/batch">
    <step id="step1">
        <tasklet>
            <chunk reader="theItemReader" writer="compositeWriter"
                commit-interval="1" />
        </tasklet>
    </step>
</job>

<bean id="theItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="resource" value="file:csv/inputs/ad_usage_sample.csv" />
    <property name="linesToSkip" value="1"></property>
    <property name="lineMapper">
        <bean
            class="org.springframework.batch.item.file.mapping.PassThroughLineMapper">
        </bean>
    </property>
</bean>

<bean id="compositeWriter"
    class="org.springframework.batch.item.support.ClassifierCompositeItemWriter">
    <property name="classifier">
        <bean
            class="org.springframework.batch.classify.BackToBackPatternClassifier">
            <property name="routerDelegate">
                <bean class="com.my.LineClassifier" />
            </property>
            <property name="matcherMap">
                <map>
                    <entry key="abc" value-ref="fileItemWriter1" />
                    <entry key="xyz" value-ref="fileItemWriter2" />
                </map>
            </property>
        </bean>
    </property>
</bean>

<bean id="fileItemWriter1" class="org.springframework.batch.item.file.FlatFileItemWriter">
    <property name="resource" value="file:csv/outputs/oneLouderOutput3.csv" />
    <property name="appendAllowed" value="true" />
    <property name="lineAggregator">
        <bean
    class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
            <property name="delimiter" value="," />
        </bean>
    </property>
</bean>

<bean id="fileItemWriter2" class="org.springframework.batch.item.file.FlatFileItemWriter">
    <property name="resource" value="file:csv/outputs/oneLouderOutput3.csv" />
    <property name="appendAllowed" value="true" />
    <property name="lineAggregator">
        <bean
    class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
            <property name="delimiter" value="," />
        </bean>
    </property>
</bean>

2 Answers 2

4

I just had a similar problem and found that I had to change the package of the Classifier from

org.springframework.batch.classify.BackToBackPatternClassifier

to

org.springframework.classify.BackToBackPatternClassifier

i.e. remove the batch

I am also using spring-retry-1.0.3.RELEASE.jar

Sign up to request clarification or add additional context in comments.

1 Comment

this should fix it. here is dependency for spring retry <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> <version>1.0.3.RELEASE</version> </dependency>
1

BackToBackPatternClassifier (and Classifier) is defined is spring-retry module and probably you need to include its jar in your classpath (I can't check now, but latest version is spring-retry-1.0.2.RELEASE)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.