在《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>
但是,我无法让它发挥作用。这是我到目前为止所尝试过的:
- 托管bean
- 变量解析器
- 资源包
- 直接通过 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(使用前将#替换为@)