如何在 Web 项目中部署 EJB (MDB 2.1.x)

How to deploy EJB (MDB 2.1.x) in a web project

我使用 Maven、WebSphere 6.x、RAD 8.x 并获得了一个 maven web 项目。

我试图将 MDB 添加到 Web 项目中。我把MDB放在src/main/java下,把ejb-jar.xml和websphere绑定直接放在WEB-INF下

当我部署 Web 项目时,我没有看到 MDB 正在部署。

我该如何解决这个问题?

我是否应该在 web.xml 中添加一些内容来通知 Web 应用它有一个 EJB?

我问了一个不同的问题 我在其中单独创建了一个 MDB 项目并尝试在 Web 项目中依赖 类 并且得到的答复是我可以将我的 EJB 作为网络应用本身。

当作为单独的 ejb 项目部署时,MDB 可以正确部署。但是EJB项目在运行时无法找到对web项目的依赖。它抛出 Class 发现异常。

所以请帮我解决其中一个 2

1) 如何在 WAR 中创建 EJB 并使 WAR 知道它有一个 EJB? - 在这种情况下,war 无法识别 ejb

2)如何使独立的 EJB 项目从 Web 项目内部识别 类? - 在这种情况下,ejb 无法识别 war 类

无法在 WebSphere 6.1 的 WAR 中创建 EJB,因为它使用的是 Java EE 1.4。为此,您需要升级到 WebSphere 8.x。

对于 WebSphere 6.1,您需要在单耳中打包 war 和 ejb,并为您的应用程序更改类加载器设置。部署应用程序后,在控制台中转到 Enterprise Applications > yourApp > Class loader 并在 WAR class loader policy 中设置 Single class loader for application(这些名称来自 8.5 但你应该在 6.1 中有非常相似的东西,我没有 6.1 控制台手边,因为它很旧,不再受支持)。

详情见Configuring application class loaders