2017-01-13 7 views
0

방금 ​​JSR-352를 배우기 시작하고보기 자습서를 통해 만들었습니다. 하지만 난 배치 특성의 주입에 문제가 : 내 "myJob.xml"의 중요한 부분은 Batchlet 또는 청크의 속성을 가져 아무 문제가 없다 다음 코드로이JBatch : Wildfly 9의 BatchProperty 삽입

<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"> 
<properties> 
    <property name="name" value="MyName"/> 
</properties> 

입니다 :

@Inject 
JobContext batchContext; 

@Override 
public String process() throws Exception { 
    Thread.sleep(100); 
    String name = batchContext.getProperties().getProperty("name"); 

그러나 다른 튜토리얼에서 나는 또한

@Inject 
@BatchProperty(name="name") 
String name; 

그러나 이름의 값은 항상 null의 경우이 작업을 수행 할 수있는 간단한 방법을 찾을 수 있습니다. 그래서 주사가 작동하지 않습니다. 이것이 내 고장입니까? 아니면 일괄 처리 응용 프로그램을 배포 한 wildfly 9.0.1의 문제입니까?

+0

당신은'JobContext'를 주입 한 같은 클래스에 이름을 주입하려고합니까? –

+0

예. 그것은 같은 Batchlet 클래스입니다. – Veilchen4ever

+1

확실히 작동합니다. 배포 환경에'beans.xml'을 가지고 있습니까? –

답변

1

제 질문에 대답하고 있습니다. JBatch에서 다른 초보자에게 도움이되기를 바랍니다.

"배치 렛"태그 내부 또는 "덩어리"태그 내부에 선언 된 속성 (@Inject @BatchProperty 포함) 만 주입 할 수 있다는 것을 눈치 채지 못했습니다. 작업 수준 또는 단계 수준의 속성을 사용하면이 기능이 작동하지 않습니다.