【发布时间】:2012-01-26 15:34:30
【问题描述】:
自:
-
@EJB不适用于桌面应用,因为没有容器, - Weblogic 不会通过 JNDI 公开 EJB (3.0) 的名称,
- 这几天我在官方文档中没有找到任何关于它的信息,
有谁知道我如何从桌面应用程序使用 EJB?
我得到提示,我必须修改 web.xml... 但是 web.xml,还有更多,至少其中一些会破坏我的应用程序。
说明: 我有一个 WebLogic 服务器正在运行,而不是在该服务器上托管的 EAR 中暴露一些 EJB。具体来说,服务器没有公开 EJB3.0 会话 bean 的名称,但它确实公开了一些其他 EJB2.1 名称的名称。 如何从我的桌面应用程序获取对托管在我的服务器上的 EJB3.0 对象的引用?
进一步说明: Weblogic 具体不会在 JNDI 中公开 EJB3.0 的名称,因为 EJB3.0 的规范不需要。
【问题讨论】:
-
WebLogic 不公开 EJB 3.0 的 JNDI 名称是什么意思?您是否创建并部署了必要的 ejb-jar.xml?修复服务器端,然后通过在初始上下文中查找来使用桌面应用程序中的 EJB。
-
问题可能是尽管 EJB 3 规范允许 EJB 通过 RMI/IIOP 公开,但它并不要求这样做,并且一些容器目前只提供本地 EJB(例如 JBoss AS7 )。也许 WebLogic 在同一个篮子里。
-
是的,就是这样...... Weblogic 不会公开 EJB3.0 名称,因为规范不需要它。
-
WebLogic 11g 手册建议您可以远程访问 EJB:docs.oracle.com/cd/E17904_01/web.1111/e13719/…
-
@TomAnderson 这很有趣。你能指出规范的相关部分来支持你的话吗? JBoss AS7 不支持远程接口,因为它正式支持 Web 配置文件(并且它不需要实现远程接口 - 这是符合规范的)。但是,EJB 3.0 是 Java EE 5 的一部分,当时还没有 WebProfile / FullProfile 这样的术语。如果 Weblogic 不允许您访问远程接口 EJB,那么这个术语中“远程”部分的目的是什么?
标签: java ejb-3.0 weblogic11g