在Web应用程序的上下文中理解EJB

时间:2015-07-28 19:43:51

标签: java java-ee jboss7.x ejb-3.0

我已经使用J2E Web应用程序多年了,并且在过去几周内已经开始使用EJB。 我基于这个例子创建了一个项目

  1. 基本上我创建了两个maven项目,类似于此处描述的https://blog.illucit.com/2015/04/ejb-remoting-with-wildfly/,一个构建Web应用程序(war)和一个构建EJB的项目。 在web应用程序中,我向EJB添加了一个依赖项,我可以使用上下文查找来调用正确的EJB并将其强制转换为正确的类类型。即使我的bean用远程注释,我猜这是一个本地调用。

  2. 第二次尝试时,我部署了一个EJB模块,并可以分离部署Web应用程序。我能够进行上下文查找以引入会话bean。但我只能将它转换为Object类。我想因为我的Web应用程序中没有引用EJB,因为它是可分离部署的模块的一部分,所以我无法进行转换。

    我可以想象,由于我的Web应用程序是独立的,这是一个非常简单的分布式系统示例? 如果是这样,如果类定义在另一个应用程序中,如何避免此转换问题?

  3. 编辑 - 因为我没有找到我想要的芒果,所以我试图缩小我的问题的范围。

    在这个例子中 https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+server+instance

    您可以看到客户端能够调用Greeter类,即使它位于另一台服务器上。客户端没有导入Greeter类。 那么它如何能够将EJB查找转换为它没有任何引用的类?

1 个答案:

答案 0 :(得分:0)

如果要在不同的服务器中划分EJB和WAR项目,则需要第三个项目(普通Java项目),其中包含用于WAR和EJB之间通信的所有对象(PO​​JO,VO,DTO或实体)并且您还需要放置所有EJB的远程接口。通过这种方式你可以做“演员”。这个新项目必须是项目EJB和WAR的依赖项。