我正在測試一個EJB 2.x應用程序。我創建了2模塊分別:分別部署ejb模塊和web模塊時無法訪問bean?
EJB模塊:包含一個簡單的無狀態會話bean
Web模塊:包含一個servlet頁面查找EJB模塊。 我正在使用Jboss 4.2.3
。
首先,我部署的EJB模塊和部署進展順利。 二,我部署的網絡模塊和部署進展順利。
然後我用下面的代碼來查找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查找,因爲這兩個模塊部署在同一個容器中。 我錯過了什麼,或者這是JBoss 4中的缺陷?
什麼是ClassCastException異常的全棧(或至少消息)?什麼是o.getClass(),o.getClass()的值。getClassLoader(),和HelloLocalHome.class.getClassLoader()? –