Автор оригинала: mkyong.
Создайте простое пакетное задание Spring для записи данных в csv-файл. Имя файла csv зависит от передачи параметров задания, интерпретируемого SpringEL.
Модульный тест выше задания:
public class TestSampleJob extends AbstractTestNGSpringContextTests { @Autowired private JobLauncherTestUtils jobLauncherTestUtils; @Test public void launchJob() throws Exception { JobParameters jobParameters = new JobParametersBuilder().addString("pid", "10").toJobParameters(); JobExecution jobExecution = jobLauncherTestUtils.launchJob(jobParameters); Assert.assertEquals(jobExecution.getStatus(), BatchStatus.COMPLETED); } }
Проблема
Он выдает сообщение об ошибке “Параметры задания не могут быть найдены”:
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Field or property 'jobParameters' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:208) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:72) at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
Решение
Параметры задания
компонент фактически не может быть создан до тех пор, пока не начнется “Шаг”. Чтобы исправить это, требуется поздняя привязка с областью действия “Шаг”.
Ссылка
Оригинал: “https://mkyong.com/spring-batch/jobparameters-cannot-be-found-on-object-of-type-beanexpressioncontext/”