Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧批处理第二步工作不正常_Java_Spring_Batch Processing_Spring Batch - Fatal编程技术网

Java 弹簧批处理第二步工作不正常

Java 弹簧批处理第二步工作不正常,java,spring,batch-processing,spring-batch,Java,Spring,Batch Processing,Spring Batch,我用两个步骤配置一个作业,两个步骤都需要读取不同的文件并将数据转储到数据库。当我启动作业时,它执行第一步并成功保存数据,第二步不读取文件。但在数据库中,我可以看到这两个步骤的状态都是成功的。我的配置如下所示: job id="job1" job-repository="jobRepository" xmlns="http://www.springframework.org/schema/batch" restartable="true"> <step id="step1"&g

我用两个步骤配置一个作业,两个步骤都需要读取不同的文件并将数据转储到数据库。当我启动作业时,它执行第一步并成功保存数据,第二步不读取文件。但在数据库中,我可以看到这两个步骤的状态都是成功的。我的配置如下所示:

job id="job1" job-repository="jobRepository" xmlns="http://www.springframework.org/schema/batch" restartable="true">
    <step id="step1">
        <tasklet transaction-manager="transactionManager" task-executor="taskExecutor">
            <chunk reader="DomainItemReader" writer="DomainItemWriter" commit-interval="40" skip-limit="10">
                <skippable-exception-classes>
                    <include class="java.lang.Exception"/>
                    <exclude class="java.io.FileNotFoundException"/>
                </skippable-exception-classes>
                <listeners>
                    <listener ref="MyListener"/>
                </listeners>
            </chunk>
        </tasklet>
        <next on="COMPLETED" to="step2"/>
    </step>
    <step id="step2" >
        <tasklet transaction-manager="transactionManager" task-executor="taskExecutor" allow-start-if-complete="true">
            <chunk reader="DomainItemReader2" writer="DomainItemWriter2" commit-interval="100" skip-limit="10">
                <skippable-exception-classes>
                    <include class="java.lang.Exception"/>
                    <exclude class="java.io.FileNotFoundException"/>
                </skippable-exception-classes>
                <listeners>
                    <listener ref="MyListener2"/>
                </listeners>
            </chunk>
        </tasklet>
    </step>
</job> 
job id=“job1”job repository=“jobRepository”xmlns=”http://www.springframework.org/schema/batch“restartable=“true”>
我的读者是这样的:

<bean id="billDomainItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="resource" value="file:./firstfile.txt" />
    <property name="linesToSkip" value="1" />
    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                        <property name="delimiter">
                        <util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB"/>
                    </property>
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="com.abc.DomainMapper">
                    <property name="accessJobParam" ref="accessJobParam"/>
                </bean>
            </property>
        </bean>
    </property>
</bean>
<bean id="DomainItemReader2" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
    <property name="resource" value="file:./secondFile.txt" />
    <property name="linesToSkip" value="1" />
    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    <!-- <property name="names" value="PRODUCT_ID,NAME,DESCRIPTION,PRICE" />-->
                    <property name="delimiter">
                        <util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB"/>
                    </property>
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="com.abc.DomainMapper2">
                    <property name="accessJobParam" ref="accessJobParam"/>
                </bean>
            </property>
        </bean>
    </property>
</bean>

我的第二步的读取器是这样的:

<bean id="billDomainItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="resource" value="file:./firstfile.txt" />
    <property name="linesToSkip" value="1" />
    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                        <property name="delimiter">
                        <util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB"/>
                    </property>
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="com.abc.DomainMapper">
                    <property name="accessJobParam" ref="accessJobParam"/>
                </bean>
            </property>
        </bean>
    </property>
</bean>
<bean id="DomainItemReader2" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
    <property name="resource" value="file:./secondFile.txt" />
    <property name="linesToSkip" value="1" />
    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    <!-- <property name="names" value="PRODUCT_ID,NAME,DESCRIPTION,PRICE" />-->
                    <property name="delimiter">
                        <util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB"/>
                    </property>
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="com.abc.DomainMapper2">
                    <property name="accessJobParam" ref="accessJobParam"/>
                </bean>
            </property>
        </bean>
    </property>
</bean>

请任何人告诉我我哪里做错了,为什么不处理我的第二步文件。
感谢您的第二个读卡器配置

<property name="fieldSetMapper">
                <bean class="com.DomainMapper2">
                    <property name="accessJobParam" ref="accessJobParam"/>
                </bean>
            </property>

检查bean类映射


在第二个读卡器配置中,这个bean是在同一个包中还是在不同的包中

<property name="fieldSetMapper">
                <bean class="com.DomainMapper2">
                    <property name="accessJobParam" ref="accessJobParam"/>
                </bean>
            </property>

检查bean类映射

这个bean是在同一个包中还是在不同的包中

allow-start-if-complete="true"`
从我的第二步开始

parent="step1" 
在我的第二步中,它对我来说很好

我删除了

allow-start-if-complete="true"`
从我的第二步开始

parent="step1" 

在我的第二步中,它对我来说很好

嗨,普拉迪普,谢谢你的回复。两个读卡器在同一个包中。com.abc.DomainMapper2和com.abc.DomainMapper1Hi Pradeep,感谢您的回复。两个读卡器在同一个包中。com.abc.DomainMapper2和com.abc.DomainMapper1