書籍「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>
ただし、これを機能させることはできません。これが私がこれまでに試したことです:
- 管理された Bean
- 変数リゾルバ
- リソースバンドル
- 接続ファイルを直接、および 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}"
これは、この接続ファイルが「そのまま」使用されていることを示しているようです。