【问题标题】:Looking up EJBs on JBoss 7在 JBoss 7 上查找 EJB
【发布时间】:2012-10-26 11:57:05
【问题描述】:

我开发了非常简单的 Hello World EJB (3.x),并将其部署在 JBoss 7.1 上。

我可以在独立应用程序中成功调用此 EJB。 尝试从 servlet 调用它时,我找到了 EJB。

我已将 EJB 打包在 JAR 中,将 servlet 打包在 WAR 中。 这似乎是 servlet 无法访问 EJB 的原因。 这可能是真的吗?

一旦我将 EJB JAR 和 servlet WAR 打包到同一个 EAR 中,它就可以工作了。

作为假定的行为,或者即使不使用 EAR,我也可以完成这项工作吗?

也许有人可以对此有所了解。

我很确定我不需要在早期的 JBoss 版本上做这些事情。

【问题讨论】:

  • 你是对的;刚刚开始这样做。

标签: servlets jar ejb jboss7.x ear


【解决方案1】:

根据 Java EE 规范,部署的应用程序应该是隔离的,除非它们在同一个 EAR 归档中。所以你看到的行为是正确的。

这与 JBoss 4 或 JBoss 5 的默认配置不同,后者没有存档隔离(这本质上是一件坏事,但通常很方便......)。

EAR 打包有点烦人,但可以由 IDE 或 Maven 自动完成。

此外,对于 Java EE v. 6,您可以将具有本地接口的 EJB 组件打包到 WAR 存档中,这可以简化部署。

【讨论】: