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

时间:2013-06-05 11:11:04

标签: jdbc xpages xpages-extlib

在“XPages扩展库”一书中,第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. 托管豆
  2. 的VariableResolver
  3. 资源包
  4. 直接编写连接文件并通过java.util.Properties
  5. 编写 在XPage中引用时,

    1到3工作,但不在此文件中。如果连接文件是“key = value”类型,则数字4将起作用。但是,java.util.Properties不能与不符合某个DTD(如此文件)的XML文件一起使用。并且不支持编写整个文件(在WEB-INF下)。

    编辑:

    其他一些信息:

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

2 个答案:

答案 0 :(得分:1)

我猜“rcp”是对Rich Client Platform环境对象变量的引用,也许.data是指向WEB-INF目录的属性。

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

  

Lotus Expeditor平台使用System属性rcp.data来标识工作区的位置&gt;

     

文件f =新文件(System.getProperty(“rcp.data”));

据我所知,这些变量字符串可以访问操作系统环境变量和expeditor属性变量。这些东西如何被嫁接到多米诺骨牌/ XPage系统尚未记录,但Expeditor团队中的许多人现在都在XSP团队中。以下是我在Expeditor docuemntation中可以找到的线索:

  

占位符$ {env。“系统环境变量”}用于指定&gt;系统环境变量的使用。

     

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

所以也许你可以把凭证放在rcplauncher.properties中并通过$ {prop。*}变量引用它们。

答案 1 :(得分:0)

需要核心XPage运行时修复才能解决此问题。核心我指的是无法在XPages扩展库中完全修复的东西。因此,修复程序仅在下一个完整的Domino版本中可用。