JDBC 连接文件可以包含计算属性吗?

2023-12-28

在《XPage Extension Library》一书中,第12章,第409页有一个JDBC连接文件的示例:

<jdbc>
    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
    <url>jdbc:derby:${rcp.data}\derby\XPagesJDBC;create=true</url>
    <user>phil</user>
    <password>phil</password>
</jdbc>

文中还提到“注意前面示例中配置属性的使用rcp.data在计算表达式 ${rcp.data} 中。连接文件可以利用计算属性在他们的定义中。”

我的问题是:这些“计算属性”到底是什么以及它们如何使用?我想将用户名和密码存储在其他地方并使用如下方式引用它们:

<user>${SettingsBean.SQLUserName}</user>
<password>${SettingsBean.SQLPassword}</password>

但是,我无法让它发挥作用。这是我到目前为止所尝试过的:

  1. 托管bean
  2. 变量解析器
  3. 资源包
  4. 直接通过 java.util.Properties 写入连接文件

1 到 3 在 XPage 中引用时有效,但在此文件中无效。如果连接文件是“key=value”类型,则第 4 种方法可行。但是,java.util.Properties 不能与不符合特定 DTD 的 XML 文件(如本文件)一起使用。并且不支持写入整个文件(在WEB-INF下)。

EDIT:

一些附加信息:

  • 上面的内容来自 XPageJDBC.nsf(来自 OpenNTF),而不是来自第 409 页中的图像。该页面上的文本似乎引用了此代码。
  • XPageJDBC.nsf 在其他地方不包含单词“rcp.data”,至少它不会出现在搜索中。
  • 如果用户名是硬编码的,则 JDBC 连接可以正常工作。
  • SQL 错误消息看起来像这样:Unknown user: "${SettingsBean.SQLUserName}"这似乎意味着该连接文件是“按原样”使用的。

我猜测“rcp”是对富客户端平台环境对象变量的引用,也许.data是指向WEB-INF目录的属性。

文档中肯定有一些像这样无法解释的言论在嘲笑我们。我在 Lotus Expeditor 文档中看到一些类似的内容(例如 ${rcp.*} )http://publib.boulder.ibm.com/infocenter/ledoc/v6r2/index.jsp?topic=/com.ibm.rcp.tools.doc.admin/updatingclientconfigurationsusingmanualupdates.html http://publib.boulder.ibm.com/infocenter/ledoc/v6r2/index.jsp?topic=/com.ibm.rcp.tools.doc.admin/updatingclientconfigurationsusingmanualupdates.html- 检查出。我在那里发现了这个小宝石:

Lotus Expeditor 平台使用系统属性 rcp.data 来标识工作区的位置。

文件 f = new File( System.getProperty( "rcp.data" ) );

据我所知,这些变量字符串可以访问操作系统环境变量和加速器属性变量。这些东西如何移植到 domino/XPage 系统中还没有记录,但 Expeditor 团队中的许多人现在都在 XSP 团队中。以下是我可以在 Expeditor 文档中找到的线索:

占位符${env.”系统环境变量”}用于指定>系统环境变量的使用。

占位符 ${prop.”rcplauncher_property”} 用于指定使用 rcplauncher.properties 中的属性 >。

因此,也许您可​​以将凭据放入 rcplauncher.properties 中,并通过 ${prop.*} 变量引用它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC 连接文件可以包含计算属性吗? 的相关文章

随机推荐