-1

自从:

  • @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 的规范不需要它。

4

1 回答 1

0

要回答我自己的问题(经过一番努力才知道),通过远程接口公开 EJB3.0 对象,在 Weblogic 11g 服务器中,必须执行以下步骤:

这就是我的 ejb-jar.xml 关于 bean RolyBean 的内容:

<enterprise-beans>       
    <session id="Session_Roly">
      <display-name>Roly</display-name>
      <ejb-name>Roly</ejb-name>
      <remote>com.medicon.server.RolyRemote</remote>
      <ejb-class>com.medicon.server.RolyBean</ejb-class>
      <session-type>Stateless</session-type>
    </session>
  </enterprise-beans>

这就是 weblogic-ejb-jar.xml(在同一个目录中)所说的:

<wls:weblogic-enterprise-bean>
    <wls:ejb-name>Roly</wls:ejb-name>
<wls:jndi-name>Roly</wls:jndi-name>
</wls:weblogic-enterprise-bean>

这两个部署描述符似乎是唯一需要通过 JNDI 指定 EJB 公开的两个地方。

于 2012-01-26T17:42:53.973 回答