Jakarta ee 如何使用XML访问JavaEE上的命名空间绑定?

Jakarta ee 如何使用XML访问JavaEE上的命名空间绑定?,jakarta-ee,websphere,jndi,Jakarta Ee,Websphere,Jndi,我使用以下信息在IBM WebSphere 7.0上添加了名称空间绑定: 绑定类型=字符串 绑定标识符=测试 名称空间中的名称相对于查找名称前缀“cell/nodes/DummyNode01/servers/server1/”:=url1 字符串值= 我可以使用以下代码访问web应用程序代码中的字符串值: Context initial_ctx; initial_ctx = new InitialContext(); String value = (String) initial_ctx.l

我使用以下信息在IBM WebSphere 7.0上添加了名称空间绑定:

  • 绑定类型=字符串
  • 绑定标识符=测试
  • 名称空间中的名称相对于查找名称前缀“cell/nodes/DummyNode01/servers/server1/”:=url1
  • 字符串值=
我可以使用以下代码访问web应用程序代码中的字符串值:

Context initial_ctx;
initial_ctx = new InitialContext();
String value = (String) initial_ctx.lookup("url1");
现在我想把字符串值放在XML中,而不是通过代码访问它。如何在XML中访问WebSphere的名称空间绑定?我可以在
上下文参数
标记中声明它吗

谢谢

一些注释

首先,NSB的字符串名称(JNDI字符串)将根据您设置的范围在WebSphere上有所不同。您在文章中标识的“服务器”范围允许您按其友好名称(“示例中的url1”)引用该字符串值。但是,在集群环境中要小心—您必须在每个服务器实例上定义此NSB,您可能希望所有集群成员应用服务器的值相同。在本例中,在单元级别定义NSB,并在代码中(或稍后,在SpringXML中)使用jndi名称“cell/persistent/url1”

由于WebSphere中的NSB只是命名服务(JNDI)中的字符串,因此可以使用Spring JndiFactoryBean:

<bean id="myUrl1NameSpaceBinding" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="url1"/> <!-- cell/persistent/url1 in a cluster-wide shared namespace binding -->
    <property name="cache" value="true"/>
    <property name="resourceRef" value="false"/>
    <property name="lookupOnStartup" value="false"/>
    <property name="expectedType" value="java.lang.String"/>
</bean>

还有一种速记风格:

<jee:jndi-lookup />

另见:

希望这有帮助

斯科特