gpt4 book ai didi

jakarta-ee - 在另一只耳朵中注入(inject)无接口(interface) ejb

转载 作者:行者123 更新时间:2023-12-01 04:03:57 25 4
gpt4 key购买 nike

我在耳朵中部署了一个无接口(interface) ejb (MyEar.ear)

@Stateless
@LocalBean
public class MyService{
// stuff
}

耳朵部署到jboss-6.0.0.Final

我从服务器 jmx 控制台确认了 JNDI 名称:

MyEar/MyService/无接口(interface)

我试图在同一台服务器的 war (耳朵外)中从另一个 ejb 引用这个 ejb:
@EJB(mappedName = "MyEar/MyService/no-interface")
private MyService myService;

我在eclipse中从war项目中引用ear项目,编译成功。

部署 war 时,我不断收到 ClassNotFoundException 异常:

java.lang.ClassNotFoundException: eg.com.test.MyService

为什么 war 中的ejb看不到另一只耳朵的ejb?

编辑 : 我更新到以下

远程接口(interface)
@Remote
public interface MyServiceRemote{
// stuff
}

ejb
@Stateless
public class MyService implements MyServiceRemote{
// stuff
}

不同应用程序中的 ejb 引用
@EJB(mappedName = "MyEar/MyService/remote")
private MyServiceRemote myService;

我在服务器上验证了新的 JNDI 名称:MyEar/MyService/remote

但是我仍然遇到同样的异常,这次找不到接口(interface):

java.lang.ClassNotFoundException: eg.com.test.MyServiceRemote

更新 :我需要将远程接口(interface)与 war 打包,它现在可以正常工作。

最佳答案

该 EJB 需要有一个远程接口(interface),并且您可以像从外部 WAR 访问任何远程 EJB 一样访问它。外部 WAR 有一个单独的 EAR 类加载器,因此它不会找到 EAR 类。

关于jakarta-ee - 在另一只耳朵中注入(inject)无接口(interface) ejb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10884975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com