Java EJB查找可以工作,但方法调用不能

Java EJB查找可以工作,但方法调用不能,java,jakarta-ee,jboss,ejb,lookup,Java,Jakarta Ee,Jboss,Ejb,Lookup,我有一个JBoss EAP 6.1的实例,我在其中部署了两个EJB应用程序。 服务器启动时没有错误 现在我创建了一个javaSE应用程序来调用这些EJB 问题是 如果我从applicationA/EJBBean查找EJB!br.com.sample.EJBRemote它运行良好,我可以从中调用任何方法 但是,我从applicationB/EJBean查找EJB!br.com.sample.EJBRemote它可以正常工作。但是,当我调用一个方法时,javaSE应用程序停止。我没有错误,没有输出。

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

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

问题是

如果我从applicationA/EJBBean查找EJB!br.com.sample.EJBRemote它运行良好,我可以从中调用任何方法

但是,我从applicationB/EJBean查找EJB!br.com.sample.EJBRemote它可以正常工作。但是,当我调用一个方法时,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);
}
它们都很好用

但当我这样做的时候:

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

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

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

这澄清了问题仅存在于applicationB中,而与ApplicationA无关。很少有人猜测:1检查JVM参数2 applicationB中提到的主类应该在JAR3Clean中可用,并重新部署everythingYeap。但我错过了什么?我将类从applicationB移动到applicationA,它可以正常工作。我需要为applicationB works做什么?有什么想法吗?奇怪的是我可以查找EJB。并且没有错误输出!你好我检查了你的案例,两种方法在我的机器上都能正常调用。您可以发布客户端代码以及您正在使用的InitialContext参数吗?您是否将appA打包为appA.jar,将appB打包为appB.jar,这两种ejb jar?
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