有人能告诉我在哪里可以找到有关 EJB 3 的默认 JNDI 命名的信息吗?
Weblogic 是否使用像 Glassfish 这样的可移植 JNDI 名称?
我可以找到(例如 Glassfish)使用 JNDI 名称的 EJB 部署的痕迹吗?
例如 :
- 只有@Remote 的接口(服务)
- 一个只有 @Stateless 实现接口的 bean (ServiceImpl)
- 打包在
.ear
文件中的所有内容 (service-application-1.0)
在 Weblogic 上部署时,我看到的唯一 JNDI 参考是:
service-application-1.0service-application-1.0_jarServiceImpl_Home
但我不能在上下文查找中使用该名称。如果我做
Service myService = (Service) context.lookup("service-application-1.0service-application-1.0_jarServiceImpl_Home");
它给了我
Exception in thread "main" java.lang.ClassCastException: weblogic.ejb.container.internal.StatelessEJBHomeImpl_1035_WLStub cannot be cast to com.tuto.Service
at com.tuto.TestEjb.main(TestEjb.java:24)
PS。有了 Glassfish,它给了我
Portable jndi names for .... : java:global/service-application-1.0/service-application-ejb-1.0/ServiceImpl
和
Service myService = (Service) context.lookup("java:global/service-application-1.0/service-application-ejb-1.0/ServiceImpl");
正在工作中。