EJB Lookup有效,但方法调用不适用

时间:2014-12-23 10:42:48

标签: java java-ee jboss ejb lookup

我有一个JBoss EAP 6.1的实例,其中我部署了2个EJB应用程序。 服务器启动时没有错误!

现在我已经创建了一个javaSE应用程序来调用这些EJB。

这就是问题......

如果我从applicationA/EJBBean!br.com.sample.EJBRemote查找EJB,它工作正常,我可以调用它的任何方法。

但是,我从applicationB/EJBBean!br.com.sample.EJBRemote查找EJB它可以正常工作。但是,当我调用一个方法时,javaSE应用程序会停止。我没有错误,没有输出。 我在方法实现的第一行放了一个断点,我发现它没有被执行。

我的查找代码如下:

public static <T> T getEJB(final String moduleName, final String beanName, final Class<T> viewClass) throws NamingException {
    final String lookupName = aplicationName + "/" + beanName + "!" + viewClass.getName();
    return (T) ic.lookup(lookupName);
}

我用一种主要的方法来称呼它:

 final MyRemote beanA = EJBUtils.getEJB("appA", "MyBean", MyRemote.class);
 final MyRemote beanB = EJBUtils.getEJB("appB", "MyBean", MyRemote.class);

两者都运作良好

但是当我这样做时:

beanA.methodA(); // This works and prints "methodA" onto console.
beanB.methodA(); // This doesn't work. And dont print any thing onto console.
System.out.println("...") // This line doesn't execute

2 个答案:

答案 0 :(得分:0)

您正尝试从两个不同的部署中查找相同的bean。我从来没有见过这个。你应该在BeanARemote,BeanA jar等中使用BeanA.BeanB作为BeanBRemote,BeanB jar等。我想如果你将整个东西包装在一个catch块中你会看到当你在BeanB上调用一个方法时抛出的exceptino 。在您尝试使用它之前,查找并不总是抛出异常。

答案 1 :(得分:-1)

看起来像内存问题。转到JVM安装文件夹并查找堆转储。你一定会得到一些线索。