gpt4 book ai didi

binding - 不同 WebSphere 服务器上的 EJB JNDI 查找

转载 作者:行者123 更新时间:2023-12-02 12:08:12 26 4
gpt4 key购买 nike

我有两个单独安装的 WebSphere。 (实际上,其中一个是带有 EJB 3.0 和 Web 服务功能包的 WebSphere Application Server V6.1,另一个服务器是 WebSphere ESB Server V6.2)。不过,我知道 ESB 实际上是构建在 WAS 之上的,因此它具有常规 WAS 服务器所具有的所有配置设置。

在我的 ESB 服务器中,我尝试公开一个以 EJB 3.0 编写的服务,该服务将部署到 WAS 6.1 服务器。我的问题不是如何让 EJB 2.1 调用调用 EJB 3.0。我们已经这么做了。我的问题是如何跨物理虚拟机进行调用。 WebSphere Application Server 在 ESB 服务器的自己的单元/节点/服务器中运行。根据我在 IBM 文档中读到的内容,可以在 WAS 上设置 namespace 绑定(bind)以指向另一个 WAS 实例上的远程 EJB。因此,您可以使用 JNDI 来查找一个 WAS 实例上实际驻留在另一个 WAS 实例中的 bean。此方法的优点在于您想要的 EJB 的位置被抽象到容器级别,并且您不必在更改服务器等情况下拖动访问 bean 所需的 IP 地址和端口的属性文件.您只需对远程 EJB 进行标准 JNDI 查找即可得到它。

听起来好像可以做到。 (请参阅以下链接: http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/tnam_view_bindings.html )尤其要关注 EJB 和间接命名空间绑定(bind)上的链接。

但是我已经有一段时间对此感到头疼了。这说得通。看起来是可以做到的。间接命名空间绑定(bind)看起来最有前途。但我无法让它正常工作。我的 ESB 服务器一直提示在我要求的上下文中找不到 comp/env/ejb。对此非常困惑。

只是想知道以前是否有人做过这样的事情。您能给我一个具体的例子来说明您如何在 WAS 中进行设置吗?感谢任何帮助

最佳答案

好吧,我已经与 IBM 讨论了如何做到这一点,并对他们的回答感到惊讶。他们回答说,如果您在同一服务器或服务器集群内的 EJB 之间进行 EJB 对话,那么可以通过 IIOP 使用 EJB RMI。通过 JNDI,可以抽象出 Bean 实际运行的位置(在集群环境中)。

如果您要从一台服务器(或服务器集群)转移到另一台服务器(或服务器集群),无论目标和源是否位于同一单元中,IBM 建议您使用消息传递或 Web 服务。他们认为这是应用程序之间更好的抽象方法,可以防止它们彼此“捆绑”。他们确实说过您可以让 EJB 通过 CORBA 与 RMI 对话,但表示只有在绝对必要时才这样做。当然,您需要知道通过 CORBA 进入的 IP 和端口号(如果在集群环境中,还需要知道每个集群成员的时间)。

这再次让我感到惊讶,但确实有道理。我只是想与全世​​界分享这些想法,特别是如果您正在使用 WebSphere。

关于binding - 不同 WebSphere 服务器上的 EJB JNDI 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262818/

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