2011-08-23 18 views
1

我想知道下面简单的代码是否能正常工作,因为我有:的WebSphere:EJB的初始上下文+集群查找

  1. 的WebSphere ND。

  2. 两台作为Web服务器的应用程序服务器。

  3. 充当应用服务器(如簇X)
  4. 两个应用服务器

能访问部署在X群集上的EJB,使用以下代码: 的InitialContext的InitialContext =新的InitialContext(); MyBeanHome = initialContext.lookup(“/ cells/clusters/X/MyBeanHome”);

或: initialContext需求是否实际指定要从中下载路由表的服务器?也就是说,定义initialContext的属性等。

我问的原因是因为我想知道WebSphere是否能以某种方式利用单元概念并允许jndiLookup以某种方式不指定我们所在的服务器使用jndi。

回答

1

从服务器中创建一个InitialContext将引导针对您正在运行的服务器,这将是了解其细胞的拓扑结构的,所以你不需要指定与corbaloc性能等

(我相信语法是查找(“cell/clusters/X/MyBeanHome”)没有领先的“/”,但我可能会误解,并且命名可能允许这两种。)

+0

你也许是对有关 “/”。 – ComputeALot

+0

最重要的是InitialContext。客户端代码位于Web服务器上,没有部署EJB,只有EJB客户端(2.1)生成代码。 它如何“知道”访问应用程序服务器?它是一个WebSphere gizmo还是普通的旧java2ee? – ComputeALot

+1

相对于引导程序上下文的“单元/集群”是特定于WebSphere的。如果您的Web服务器是应用程序服务器,则应用程序服务器知道其单元,以便它可以找到安装在该单元上的群集。 –

0

名称空间全部互连。一旦获得了命名服务器(这是您在获取Intial Context时所做的工作),只要您使用化合物名称,就可以遍历整个树。该化合物名称具有整个拓扑结构,允许命名服务器浏览联合名称空间以查找正确的资源。

通常,不要在应用程序中硬编码拓扑。使用本地名称空间(java:comp/env)。将这些本地名称空间映射到复合名称,作为应用程序部署的一部分。如果拓扑结构发生变化,则不需要更改代码。您可以更改绑定并准备好可以使用的更改。

看一看这些链接,以获得更好的理解

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rnam_names.html

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/cnam_name_space_partitions.html

HTH

Manglu