我正在测试一个 EJB 2.x 应用程序。我分别创建了 2 个模块:
EJB 模块:包含一个简单的无状态会话 bean
Web 模块:包含用于查找 EJB 模块的单个 servlet 页面。我正在使用Jboss 4.2.3
.
首先,我部署了 EJB 模块,部署顺利。 其次,我部署了web模块,部署很顺利。
然后我使用以下代码查找 EJB 模块:
Context c = new InitialContext();
Object o = c.lookup("HelloJNDI"); // Line 1
HelloLocalHome rv = (HelloLocalHome) o; // Line 2
HelloLocal local = rv.create();
查找进行得很顺利 ( Line 1
),但Line 2
产生了一个类转换异常。
然后我在2个场景中测试上面的代码:
我将 EJB 和 Web 模块打包成一个
EAR module
. 然后,在 中部署这个EAR
模块JBoss 4.2.3
,上面的查找代码就像一个魅力。我尝试使用
JBoss 5
,甚至分别部署了 EJB 模块和 Web 模块,上面的查找代码效果很好。
那么,为什么当我在 JBoss 4 中分别部署这 2 个模块时,事情没有成功呢?我只使用本地 JNDI 查找,因为这 2 个模块部署在同一个容器中。是我遗漏了什么还是这是 JBoss 4 中的一个缺陷?