我正在尝试在Liberty Profile中运行现有的WebSphere应用程序,但遇到了问题。应用程序在服务器中配置了资源环境条目,我需要将其转换为Liberty Profile资源。如何在server.xml中配置JNDI资源,该资源不是数据源(dataSource)或常量(jndiEntry)?
非常感谢
答案 0 :(得分:3)
您可以使用server.xml中的元素进行配置。这在infocenter中有记录。基本上,您使用以下命令在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;
答案 1 :(得分:1)
目前Liberty Profile无法实现这一点。这个问题在IBM WasDev论坛中得到了解答https://developer.ibm.com/answers/questions/6221/resource-environment-entries-in-liberty-profile/?community=wasdev 已经创建了一个RFE流程(31525),以便在将来的版本中支持它。
答案 2 :(得分:0)
在8.5.5.x中有几个新的entries:
例如:要配置网址,您可以使用jndiURLEntry