banq请问:独立的WAR能通过本地接口访问一个EAR中的EJB吗?


我在web项目里声明了需要访问的EJB(的引用),如下:
<ejb-local-ref id="EJBLocalRef_1">
<ejb-ref-name>local/UserBean</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.norteksoft.user.UserHome</local-home>
<local>com.norteksoft.user.User</local>
<ejb-link>EJBModule1.jarUserBean</ejb-link>
</ejb-local-ref>
然后在部署过程中把local/UserBean绑定到了那个真实的EJB的JNDI名字上了,然后顺利启动了这个web应用,但是在执行到
Object obj=ctx.lookup(
"java:comp/env/local/UserBean");
userHome=(UserHome)obj;时,却出现异常:
java.lang.ClassCastException: com.norteksoft.user.EJSLocalCMPUserBeanHome_0f8c08c9

我反编译了EJSLocalCMPUserBeanHome_0f8c08c9发现她确实实现了UserHome接口哇。

他们部署在WAS的同一个节点上

我在web项目里声明了需要访问的EJB(的引用),如下:

<ejb-local-ref id="EJBLocalRef_1"> 
<ejb-ref-name>local/UserBean</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.norteksoft.user.UserHome</local-home> <local>com.norteksoft.user.User</local>
<ejb-link>EJBModule1.jarUserBean</ejb-link>
</ejb-local-ref>

然后在部署过程中把local/UserBean绑定到了那个真实的EJB的JNDI名字上了,然后顺利启动了这个web应用,但是在执行到
Object obj=ctx.lookup("java:comp/env/local/UserBean");
userHome=(UserHome)obj;
时,却出现异常:java.lang.ClassCastException: com.norteksoft.user.EJSLocalCMPUserBeanHome_0f8c08c9
我反编译了EJSLocalCMPUserBeanHome_0f8c08c9发现她确实实现了UserHome接口哇。
他们部署在WAS的同一个节点上.

多包涵,不知为啥字变小了。

我顶…………………………………………………………

我再顶!!!!!!!!!!

取决容器服务器的ClassLoader机制,JBoss3.22可以,websphere可能不可以。

有的服务器视一个.ear为一个classloader容器,有的服务器则是所有ear都为一个ClassLoader

谢谢,我用JBoss试试看。