我在Java配置文件中有一个作业定义。当我尝试从gradle任务运行作业时,我从类路径中获得了IOException解析XML文档。如何在不配置XML的情况下使用CommandLineJobRunner运行作业?
等级
task executeJob(type: JavaExec) {
main = 'org.springframework.batch.core.launch.support.CommandLineJobRunner'
classpath = sourceSets.test.runtimeClasspath
args = ["--job_path", "C:\\dev\\git\\ncf-bulk-order\\src\\main\\java\\com\\shelter\\NCFBulkOrder\\Jobs\\NCFBulkOrderConfig.java",
"--job_id", "Response",
"--next",
"--customParam", "value"]
}
StackTrace
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [--job_path]; nested exception is java.io.FileNotFoundException: class path resource [--job_path] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:613)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:514)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at org.springframework.batch.core.launch.support.CommandLineJobRunner.start(CommandLineJobRunner.java:290)
at org.springframework.batch.core.launch.support.CommandLineJobRunner.main(CommandLineJobRunner.java:565)
Caused by: java.io.FileNotFoundException: class path resource [--job_path] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
... 14 common frames omitted
CommandLineJobRunner
需要XML文件或Java配置类,其中包含定义您的工作的Spring应用程序上下文。这是一个带有Java配置类的示例:
CommandLineJobRunner
因此,在您的命令中,您不需要传递java -cp your/class/path \
org.springframework.batch.core.launch.support.CommandLineJobRunner \
com.example.MyJobConfiguration \
myJob
标志。