エンタープライズアプリケーションでは、netBeans 8.1を使用してMessageDriven BeanをWebアプリケーション(RESTサービス)に注入しようとしています。アプリをロード中に例外:メッセージ駆動型Beanの注入
重度:しかし私は、デプロイ時に、私は次のエラーを取得する、IDE内の任意の警告を取得いけないCDI展開の失敗:WELD-001408: @default修飾子とタイプStatisticsBeanのための不満の依存関係注入点で[BackedAnnotatedField]プライベートsv.mycompany.rest.RestService.statisticsBean @Injectここ
は私が注入しようとしている豆のいずれかです。
@MessageDriven(mappedName = "dzsobTopik")
public class StatisticsBean implements MessageListener{
private Logger LOGGER = Logger.getLogger(StatisticsBean.class.getSimpleName());
private int scheduledJobs = 0;
@Inject
private JMSContext jmsContext;
private static Map<Integer, Boolean> results = new HashMap<>();
public StatisticsBean() {
}
public static Map<Integer, Boolean> getResults() {
return results;
}
public void setResults(Map<Integer, Boolean> results) {
StatisticsBean.results = results;
}
@Override
public void onMessage(Message message) {
if(message instanceof JobScheduledMessage){
scheduledJobs++;
}
else if(message instanceof JobCompletedMessage && scheduledJobs>0) {
if(((JobCompletedMessage) message).getTimestamp()<5){
LOGGER.log(Level.INFO, "Job successful!");
results.put(((JobCompletedMessage) message).getJobnumber(), Boolean.TRUE);
scheduledJobs--;
}
else {
LOGGER.log(Level.INFO, "Job unsuccessful!");
results.put(((JobCompletedMessage) message).getJobnumber(), Boolean.FALSE);
scheduledJobs--;
}
}
}
}
そして、ここに私のrestServiceクラスは次のとおりです。
@Path("/start")
@Produces(MediaType.APPLICATION_JSON)
public class RestService {
@Inject
private JobScheduler jobScheduler;
@Inject
private StatisticsBean statisticsBean;
@Inject
private FastWorker fastWorker;
@Inject
private SlowWorker slowWorker;
@Inject
private NormalWorker normalWorker;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String startSimulation() throws InterruptedException{
jobScheduler.queueNewJobs();
return "Started simulation";
}
@GET
@Path("/jobresult")
public Map<Integer,Boolean> getJobResults(){
return StatisticsBean.getResults();
}
}
私はejbとwebモジュールの両方にbeans.xmlを持っていますが、いずれの場合も "all"に設定されています。何が問題なの?
[EJB3 - 別のMDBにMDBを挿入する]の可能な複製?(http://stackoverflow.com/questions/8246963/ejb3-inject-a-mdb-into-another-mdb) –