0

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

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

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

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

那是假定的行为,还是即使不使用 EAR,我也可以完成这项工作?

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

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

4

1 回答 1

2

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

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

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

此外,在 Java EE v. 6 的情况下,您可以将具有本地接口的 EJB 组件打包到 WAR 存档中,从而简化部署。

于 2012-10-26T13:17:15.970 回答