Jakarta ee 如何从不同的JVM和服务器调用远程EJB?

Jakarta ee 如何从不同的JVM和服务器调用远程EJB?,jakarta-ee,ejb,Jakarta Ee,Ejb,好的,我知道任何东西都有一个规范,但是,它需要兼容性吗 我可以从部署在Weblogic上的基于EJB3.1(JEE6)的体系结构调用部署在JBOSS上的应用程序EJB3(JEE5)吗 假设您的EJB3.0模块公开了一个远程接口,那么您可以通过该远程接口(使用RMI/IIOP)从EJB3.1客户端调用它 关于对您的问题的评论:我不会急于用Web服务层包装您的EJB3.0模块。它在图表上看起来很不错,但当所有的事情都说了和做了之后,它归结为需求和成本/效益。如果您的EJB3.0模块只由EJB客户机调

好的,我知道任何东西都有一个规范,但是,它需要兼容性吗


我可以从部署在Weblogic上的基于EJB3.1(JEE6)的体系结构调用部署在JBOSS上的应用程序EJB3(JEE5)吗

假设您的EJB3.0模块公开了一个远程接口,那么您可以通过该远程接口(使用RMI/IIOP)从EJB3.1客户端调用它

关于对您的问题的评论:我不会急于用Web服务层包装您的EJB3.0模块。它在图表上看起来很不错,但当所有的事情都说了和做了之后,它归结为需求和成本/效益。如果您的EJB3.0模块只由EJB客户机调用,那么标准的远程接口就足够了。话虽如此,您应该以这样一种方式定义EJB的接口,以便将来在需要时使用Web服务层对其进行封装


注意:您必须确保正在使用的应用程序服务器支持从一个版本调用到另一个版本。例如,当从WAS6.0调用WAS7.0时,IBMWebSphere将工作。JBoss带来了一些挑战(请参阅下面的评论)。

如果您的意思是“从同时运行在不同Weblogic a/S上的应用程序调用运行在JBoss a/S上的EJB”,那么听起来您可能希望将EJB封装在web服务中。嗯……没那么简单。在不同的JavaEE服务器之间调用远程EJB的支持非常差。甚至JBoss5和JBoss6之间的调用也不受支持。官方只支持一个远程Java EE服务器的Java SE。@MikeBraun,请提供一些参考资料。无论如何,如果有一些因素使得跨服务器EJB调用对您来说是不可能的,那么好吧,继续并将其中一个打包为web服务。我的意思是,人们不应该仅仅为了好玩而匆忙创建web服务包装器。Mike是对的。跨应用服务器二进制EJB通信是EJB规范中的一个主要疏忽。问题是大多数产品都需要一个叫做“客户机库”的东西,但这个客户机库几乎就是整个服务器。这意味着它包含大量的东西,比如EJB、JPA、JMS等API类,然后这些API类与源服务器中的API类一起进行分类。同一版本之间的冲突更为严重,因为冲突更多。我已经尝试了很长一段时间,但最终还是放弃了。对于JBossAS5和6,请参见有趣的。谢谢好的,在规模的另一端,当从6.0调用到7.0时,WebSphere工作得很好但总的来说,这是一件很成功的事情。有些组合起作用,有些不起作用。如果不尝试,你永远无法确定。