Рубрики
Без рубрики

параметры задания не могут быть найдены для объекта типа BeanExpressionContext

– – параметры задания не могут быть найдены для объекта типа BeanExpressionContext

Автор оригинала: 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)

Решение

Параметры задания компонент фактически не может быть создан до тех пор, пока не начнется “Шаг”. Чтобы исправить это, требуется поздняя привязка с областью действия “Шаг”.

  
	
  

Ссылка

  1. Область действия Весеннего периодического действия

Оригинал: “https://mkyong.com/spring-batch/jobparameters-cannot-be-found-on-object-of-type-beanexpressioncontext/”