当前位置: 首页 > 知识库问答 >
问题:

Spring batch reader抱怨资源

林泰平
2023-03-14

当我尝试启动spring boot应用程序时,我遇到了以下错误。它甚至在我提供作业参数之前就给出了一个错误,该参数是作业的参数。

许多讨论建议使用资源作为文件:#{jobparameters[controlFileInput]}来解决这个问题。但对我没用。提前谢了。

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:batch="http://www.springframework.org/schema/batch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/batch
    http://www.springframework.org/schema/batch/spring-batch-3.0.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util-4.2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.2.xsd">

    <context:property-placeholder location="classpath:application.properties" />
    <bean id="stepScope" class="org.springframework.batch.core.scope.StepScope">
        <property name="autoProxy" value="true" />
    </bean>
    <bean id="billItemWriteListener"
        class="com.telstra.billubfreader.listener.BillItemWriteListener" />
    <bean id="billItemProcessListener"
        class="com.telstra.billubfreader.listener.BillItemProcessListener" />

    <bean id="fileMovingToErrorTasklet"class="com.telstra.billubfreader.ErrorFileMover" />
    <bean id="fileMovingToSuccessTasklet"
        class="com.telstra.billubfreader.SuccessFileMover" />

    <bean id="billControlFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader"
        scope="step">
        <property name="resource" value="file:#{jobParameters[controlFileInput]}" />
        <property name="linesToSkip" value="${control.linetoskip}" />
        <property name="lineMapper">
            <bean class="com.telstra.billubfreader.mapper.BillControlLineMapper">
                <property name="lineTokenizer">
                    <bean   class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    </bean>
                </property>
                <property name="fieldSetMapper">
                    <bean
                        class="com.telstra.billubfreader.mapper.BillControlFieldDataMapper" />
                </property>
            </bean>
        </property>
    </bean>
    <bean id="billControlItemProcessor" class="com.telstra.billubfreader.BillControlItemProcessor"
        scope="step">
    </bean>
    <bean id="billControFileItemwriter" class="com.telstra.billubfreader.BillControlItemWriter"
        scope="step">
    </bean>


    <batch:job id="billControlFileReaderJob" restartable="true">
        <batch:step id="billControlFileRaderStep1">
            <batch:tasklet>
                <batch:chunk reader="billControlFileItemReader"
                    processor="billControlItemProcessor" writer="billControFileItemwriter"
                    commit-interval="25">
                    <batch:listeners>
                        <batch:listener ref="billItemWriteListener" />
                        <batch:listener ref="billItemProcessListener" />
                        <batch:listener ref="promotionListener"/>

                    </batch:listeners>
                </batch:chunk>
            </batch:tasklet>
             <batch:next on="FAILED" to="fileMovingtoError" />
              <batch:next on="COMPLETED" to="fileMovingToSuccess" />
        </batch:step>
        <batch:step id="fileMovingtoError">
        <tasklet ref="fileMovingToErrorTasklet"/>
        </batch:step>
        <batch:step id="fileMovingToSuccess">
        <tasklet ref="fileMovingToSuccessTasklet"/>
        </batch:step>
    </batch:job>
    <bean id="promotionListener"
class="org.springframework.batch.core.listener.ExecutionContextPromotionListener">
    <property name="keys" value="filesToMove"/>
</bean>

</beans>

共有1个答案

柳胜
2023-03-14

我在这里找到了问题。问题是SpringApplication.run在启动作业之前执行作业。所以,它没有工作参数。设置spring.batch.job.enabled=false解决了这个问题。

 类似资料:
  • 问题内容: 我尝试在Ubuntu 12.04上安装Pycharm,并且得到以下信息: 正常工作该怎么办? 问题答案: 由于Oracle设置的限制,大多数较新的发行版不再包含Oracle(Sun)JDK。相反,它们与OpenSDK一起提供。尽管OpenSDK适用于大多数应用程序,但PyCharm似乎存在一些问题。 您必须手动安装Oracle(Sun)JDK,并确保它是默认JDK或在启动PyCharm

  • 我一直在尝试以多种不同的方式在windows上构建fltk,但最终我总是得到: 配置:错误:C编译器无法创建可执行文件(msys fltk/配置) 或 检查C编译器是否正常工作:C:/MinGW/bin/gcc.exe--已损坏(CMake-gui) 我用fltk 1.3.0和1.3.3试用过它,我甚至用过三个不同的MinGW发行版,GCC版本:。但它无法编译。以下是由生成的一些错误日志/配置文件

  • 我有这个类来启动SpringCloudConfig服务器。这是一个Spring Boot应用程序。 应用程序运行正常,我的所有单元测试都正常。然而,在我们的竹子管道中,它将初始一个声纳过程来分析代码。我们不断收到这些小警告,表示以下内容: 我知道这是一个小问题,但我的任务是从代码中删除这些内容。 理想情况下,您应该将类标记为final并提供一个私有构造函数,或者所有搜索都提供一个解决方案。但是,S

  • 问题内容: 在Swift 1.2的最新升级之后,我不知道如何将一行文本拆分为单词。我曾经这样做: 但这不再起作用,因为… 嗯,好吧,即使我可以上次建造?好吧,让我们尝试… 好吧,我能想到的所有其他版本都说: 让我们来听听它对新编程语言进行Beta测试!好极了! 有人知道1.2的正确秘密调味料吗? 问题答案: 在Swift 1.2中,似乎参数的顺序已更改: 或者,使用默认值: 谓词现在是最后一个参数

  • 问题内容: 具有函数f(x,y,z),我需要求解约束f(x,y,z)= 0,然后对其进行绘制。我试图为每对(y,z)查找f(x,y,z)= 0的值x: Python(2.7.5)说“ TypeError:fsolve:’func’参数’func’的输入和输出形状不匹配。” 但是,如果我自己进行测试,它会具有相同的形状: 返回True。 为什么fsolve()抱怨? 问题答案: 期望参数和的返回值为

  • TypeScript抱怨HTMLElement没有value属性,但当我在JavaScript中使用它时,它可以正常工作。 在JavaScript中,var inputValue=document。getElementById('input1');安慰日志(inputValue.value);//它给出了输入元素的值 我可以知道为什么TypeScript抱怨吗?