2016-12-16 1 views
0

배치 배치에서 종속성 주입에 문제가 있습니다.Java EE - 배치 릿에 종속성 삽입

@Named 
public class SimpleBatchlet extends AbstractBatchlet { 
    @Inject 
    protected StorageService storageService; 

    ... 

    public String process() throws Exception { 
    storageService.doSomething(); // this throws a null pointer exception 
    } 
} 

@Named 
public class LocalFileStorageService implements StorageService { 
    public void doSomething() { 

    } 
} 

나는 beans.xml을 META-INF와 WEB-INF에 넣고 제거하는 데 아무런 도움이되지 않았습니다. 콩의 범위를 싱글 톤 (singletons)으로 변경하려고 시도했습니다. BatchRuntime을 사용하여 작업을 시작하는 메소드에서 @Schedule 주석을 사용하여 배치 작업을 호출하거나 시작합니다.

나는 이것이 작동해야한다는 것을 알고 있기 때문에 간단한 것을 놓치고 있어야합니다. 실제 사용하는 콩의 범위는 달라야 할 수도 있지만, 내가하려는 것은 콩 범위가 문제라고 생각하지 않지만 다른 설정 문제입니다.

또한 StorageService가 1 개만 구현되어 있음에 유의해야합니다.

+0

귀하의 질문에 명확하지 않은 것은 무엇이 효과가 있고 그렇지 않은 것은 무엇입니까? 어쩌면 당신은 그것을 바꿔서 예제 코드 –

+0

을 제공해야합니다. 잘하면 이것이 도움이 될 것입니다. – Walter

답변

0

명확하지 정말로 문제 (주입 CDI 콩에 NPE는?)이지만, 문제를 해결해야 당신의 Batchlet @Dependent 주석 : CDI와의 통합을 위해 @Named@Dependent 될 수

@Named 
@Dependent 
public class SimpleBatchlet extends AbstractBatchlet { 
    @Inject 
    protected StorageService storageService; 
} 

Batchlet 필요.

관련 문제