如何将CDI bean注入消息驱动的使用者

时间:2018-10-22 14:38:42

标签: java jms cdi

我想问一下实现CDI +消息驱动的使用者的最佳方法是什么或什么方法。下面的示例代码是我的应用程序的实际实现。另外,我使用apache maven作为应用程序构建工具。

ITransactionService.java

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule }   from '@angular/forms';         //<---- IMPORTED

import { AppComponent }  from './app.component';
import { HeroFormComponent } from './hero-form/hero-form.component';

@NgModule({
  imports: [
    BrowserModule,
    FormsModule                 //<---- IMPORTED IN MODULE
  ],
  declarations: [
    AppComponent,
    HeroFormComponent
  ],
  providers: [],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

TransactionServiceBean.java

public interface ITransactionService{
     void process();
}

TransService.java

@RequestScoped
@TransService
public class TransactionServiceBean implements ITransactionService{
     @Override
     public void process(){
          /logic here
     }
}

JMSConsumerService.java

@Documented
@Retention(RUNTIME)
@Target({TYPE, FIELD, METHOD, PARAMETER})
@Qualifier
public @interface TransService{

}

当我在JBoss 6.4上运行该应用程序时,在日志中出现以下错误,并且该应用程序无法在应用程序服务器中启动。.

无法解析CDI bean作为注入点

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

为什么 RequestScoped

我认为,请求上下文不会被消息隐式传输。因此我可以想象,MessageDriven-Bean将找不到可以安全使用的实例。您尝试使用@ Dependent 还是@ ApplicationScoped