我在耳朵中部署了一个无接口 ejb (MyEar.ear)
@Stateless
@LocalBean
public class MyService{
// stuff
}
耳朵部署到jboss-6.0.0.Final
我从服务器 jmx 控制台确认了 JNDI 名称:
MyEar/MyService/无接口
我试图在同一台服务器的战争中(耳朵外)从另一个 ejb 引用这个 ejb:
@EJB(mappedName = "MyEar/MyService/no-interface")
private MyService myService;
我在eclipse中从war项目中引用ear项目,编译成功。
部署战争时,我不断收到 ClassNotFoundException 异常:
java.lang.ClassNotFoundException: eg.com.test.MyService
为什么战争中的ejb看不到另一只耳朵的ejb?
编辑:我更新到以下
远程接口
@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
但是我仍然遇到同样的异常,这次找不到接口:
java.lang.ClassNotFoundException: eg.com.test.MyServiceRemote
更新:我需要将远程接口与战争打包,它现在可以正常工作。