3

我正在尝试在 Liberty Profile 中运行现有的 WebSphere 应用程序,但遇到了问题。该应用程序在服务器中配置了一个资源环境条目,我需要将其转换为 Liberty Profile 资源。如何在 server.xml 中配置不是数据源 (dataSource) 或常量 (jndiEntry) 的 JNDI 资源?

非常感谢

4

3 回答 3

3

您可以使用 server.xml 中的元素进行配置。这记录在信息中心。本质上,您可以使用以下命令在 server.xml 中启用 jndi 功能:

<featureManager>
   <feature>jndi-1.0</feature>
</featureManager>

然后您可以配置 JNDI 条目。你只能使用它来做简单的类型,所以没有复杂的对象。要配置您的条目,请执行以下操作:

<jndiEntry jndiName="myProp/philosopher" value="plato" />

Liberty 配置文件会进行类型推断,因此如果您表达了这一点:

<jndiEntry jndiName="myProp/philosopher" value="1234" />

你从 JNDI 得到一个号码。如果你这样表达:

<jndiEntry jndiName="myProp/philosopher" value="1234.3D" />

你得到一个双倍。

如果您想要一个数字作为字符串文字,您可以使用引号来表达它:

<jndiEntry jndiName="myProp/philosopher" value='"1234.3D"' />

要从您的应用程序中获取此信息,您可以进行全局查找,例如:

Context ctx = new InitialContext();
Object jndiConstant = ctx.lookup("myProp/philosopher");
String philosopher = (String) jndiConstant;

您还可以将其映射到 ibm-web-bnd.xml 文件中的资源环境条目:

<env-entry name="philosopher" binding-name="myProp/philosopher" />

然后使用此代码进行查找:

Context ctx = new InitialContext();
Object jndiConstant = ctx.lookup("java:comp/env/philosopher");
String philosopher = (String) jndiConstant;
于 2013-08-07T13:02:44.683 回答
1

目前这对于 Liberty Profile 是不可能的。此问题已在此处的 IBM WasDev 论坛https://developer.ibm.com/answers/questions/6221/resource-environment-entries-in-liberty-profile/?community=wasdev RFE 流程 (31525) 中得到解答为它创建以在将来的版本中支持它。

于 2014-08-11T09:03:39.293 回答
0

在 8.5.5.x 中有几个新条目

例如:要配置 URL,您可以使用jndiURLEntry

于 2017-06-20T07:52:19.003 回答