Jms 是否可以通过@Remote接口远程调用MessageDrivenBean?

Jms 是否可以通过@Remote接口远程调用MessageDrivenBean?,jms,java-ee-7,message-driven-bean,ejb-3.2,Jms,Java Ee 7,Message Driven Bean,Ejb 3.2,我目前正在学习EJB2+的基础知识。在Java EE 7 the Big Picture一书中提到: 会话bean通常通过远程接口访问(不过,正如我们将看到的,有些情况下不需要远程接口),而消息驱动bean只有一个bean实现类 基于上面的语句,调用消息驱动bean(MDB)就像通过远程接口调用远程会话bean一样,其服务器端接口是通过@remote注释完成的,这似乎是不可能的 例如,如果远程EJB容器上有MDB: @Remote @MessageDriven(mappedName="

我目前正在学习EJB2+的基础知识。在Java EE 7 the Big Picture一书中提到:

会话bean通常通过远程接口访问(不过,正如我们将看到的,有些情况下不需要远程接口),而消息驱动bean只有一个bean实现类

基于上面的语句,调用消息驱动bean(MDB)就像通过
远程接口调用远程会话bean一样,其服务器端接口是通过
@remote
注释完成的,这似乎是不可能的

例如,如果远程EJB容器上有MDB:

@Remote
@MessageDriven(mappedName="jms/HelloQueue")
public class HelloMDB implements MessageListener {
    public void onMessage(Message msg) {
        //implementation
    }
}

问题:远程客户端是否可以通过编程方式直接调用上述MDB。通过JNDI?

否,远程客户端无法直接调用MDB,如Oracle中所述,其中指出:

客户机组件不定位消息驱动bean,也不直接在其上调用方法


如果您想调用MDB的
onMessage
,只需将消息发送到它正在侦听的目的地即可。

我的回答是否回答了您的问题?如果是,请将其标记为正确,以帮助将来可能有相同问题的其他人。如果没有,请详细说明缺少什么。谢谢