远程EJB查找glassfish中的两个耳朵之间2.1

时间:2013-10-08 11:13:07

标签: java-ee glassfish ejb-3.0

我有2个EARS。第一个EAR包含所有带接口的jar(EAR_INTERFACE.ear)。 这些接口标记为远程。

第二个耳朵包含ejbs(EAR_EJB)。这些ejbs从第一个耳朵实现@remote接口.EJB是无状态的并且具有mappedName。 为了获得对ejb的引用,我在第二个EAR中使用ejb的mappedName进行jndi查找。

我在这里遇到问题,我无法获得对远程EJB的引用。 如果接口和ejbs在同一个EAR中,则查找成功,但在不同的EAR之间失败。

我正在使用glassfish服务器v2.1,ejb 3.0。

我搜索了这个问题并找到了关于父子EAR的信息。 这会解决我的问题。如果是,如何实现这一点。我是否需要在EAR的application.xml中提及一些内容。

请建议我解决问题的最佳方案。

2 个答案:

答案 0 :(得分:0)

看起来像glassfish 2.1有问题

如果接口与ejb不在同一模块中,则查找失败。类加载器不加载接口,因此不会生成存根。

我的ejb jar在耳边,界面在另一个罐子里。 一些我如何找到解决此问题的方法。在部署耳朵之前,将接口jar保留在domain / domain1 / lib / ext中,重新启动glassfish。部署包含ejbs的耳朵。部署成功完成后,将接口jar复制到application / j2ee-apps /并重新启动glassfish。然后,如果我尝试进行查找,则查找成功。

如果有人遇到类似问题或有更好的解决方法,请回复。

由于

答案 1 :(得分:0)

你如何进行JNDI查找?

我们有一些GF 2.1服务器,如果EJB在不同的项目中,唯一的解决方案就是这样查找:

RemoteInterface bean = null;
Properties props = new Properties();
props.setProperty("org.omg.CORBA.ORBInitialHost", "host");
props.setProperty("org.omg.CORBA.ORBInitialPort", "port");
InitialContext ctx = new InitialContext(props);
RemoteInterface bean = (RemoteInterface)
ctx.lookup("full.qualified.name.RemoteInterface");