用ear形式发布工程时你的EJB名称需要带有工程名,工程名/ejbname/remote 来访问

来源:互联网 发布:matlab求矩阵中最小值 编辑:程序博客网 时间:2024/06/14 18:15

JBoss上面部署一个EAR,其中包含一个EJB3的jar,在JUnit中通过【ejbname/remote】访问remote EJB遇到javax.naming.NamingException。然后同样的EJB只是通过jar部署时,访问没有问题。折腾了好一会儿,网络找到建议:

异常信息:javax.naming.NamingException
问题原因:
因为客户端按照ejb的JNDI名称远程查找时,没有找到对应名称的EJB组件。通常我们lookup时用的ejb名称是这样的 ejbname/remote,可是有时候我们用这样的名字来lookup组件时却找不到。其实在Jboss下发布EJB组件根据你发布的方式不同你的EJB组件的名字是不同的。
当你用ear形式发布工程时你的EJB名称需要带有工程名,像这样:工程名/ejbname/remote的形式。
当你用jar形式发布工程时,EJB查找名是不需要带有工程名做前缀的。只要:ejbname/remote 这一部分即可。


http://www.oecp.cn/hi/slx/blog/210