我是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)