Java EE - batchlet中的依赖项注入

问题描述 投票:0回答:1

我在批处理中遇到依赖注入问题。

@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中并将其删除,但都无济于事。我也尝试将bean的范围更改为单例等。我通过在使用BatchRuntime启动作业的方法上使用@Schedule注释来调用/启动批处理作业。

我必须遗漏一些简单的东西,因为我知道这应该有用。我将使用的bean的实际范围可能需要改变,但我想要的是我不相信bean范围是一个问题,但一些其他配置问题。

我还应该注意,我只有1个StorageService实现。

batch-processing java-ee-6
1个回答
0
投票

不清楚你的问题究竟是什么(注入CDI bean上的NPE?),但注释你的Batchlet @Dependent应该可以解决问题:

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

Batchlet需要与@Named@Dependent整合CDI。

© www.soinside.com 2019 - 2024. All rights reserved.