在“XPages 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>
但是,我无法让它发挥作用。这是我到目前为止所尝试的:
- 托管豆
- 变量解析器
- 资源包
- 直接通过 java.util.Properties 编写连接文件
1 到 3 在 XPage 中引用时有效,但在此文件中无效。如果连接文件属于“key=value”类型,则第 4 号将起作用。但是,java.util.Properties 不能用于不符合特定 DTD 的 XML 文件(如此文件)。并且不支持写入整个文件(在 WEB-INF 下)。
编辑:
一些附加信息:
- 上面的内容来自 XPagesJDBC.nsf(来自 OpenNTF),而不是来自第 409 页中的图像。该页面上的文本似乎引用了此代码。
- XPagesJDBC.nsf 在其他地方不包含单词“rcp.data”,至少它没有出现在搜索中。
- 如果用户名是硬编码的,则 JDBC 连接可以完美运行。
- SQL 错误消息看起来像这样:
Unknown user: "${SettingsBean.SQLUserName}"
这似乎暗示这个连接文件是“按原样”使用的。