相关疑难解决方法(0)

如何将会话Bean注入消息驱动Bean?

我是Java EE的新手,所以这可能是愚蠢的......请耐心等待:D

我想将一个无状态会话bean注入一个消息驱动的bean.基本上,MDB获取JMS消息,然后使用会话bean来执行工作.会话bean保存业务逻辑.

这是我的会话Bean:

@Stateless
public class TestBean implements TestBeanRemote {

  public void doSomething() {
    // business logic goes here
  }
}
Run Code Online (Sandbox Code Playgroud)

匹配界面:

@Remote
public interface TestBeanRemote {

  public void doSomething();
}
Run Code Online (Sandbox Code Playgroud)

这是我的MDB:

@MessageDriven(mappedName = "jms/mvs.TestController", activationConfig =  {
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
    })
public class TestController implements MessageListener {

 @EJB
 private TestBean testBean;

    public TestController() {
    }

    public void onMessage(Message message) {
      testBean.doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,还不是火箭科学吧?

不幸的是,当将其部署到glassfish v3并向相应的JMS队列发送消息时,我得到了glassfish无法找到TestBean EJB的错误:

java.lang.IllegalStateException: Exception …
Run Code Online (Sandbox Code Playgroud)

glassfish cdi java-ee-6 ejb-3.1 glassfish-3

5
推荐指数
3
解决办法
1万
查看次数

标签 统计

cdi ×1

ejb-3.1 ×1

glassfish ×1

glassfish-3 ×1

java-ee-6 ×1