4

書籍「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>

ただし、これを機能させることはできません。これが私がこれまでに試したことです:

  1. 管理された Bean
  2. 変数リゾルバ
  3. リソースバンドル
  4. 接続ファイルを直接、および 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}"これは、この接続ファイルが「そのまま」使用されていることを示しているようです。
4

2 に答える 2

1

「rcp」はリッチ クライアント プラットフォーム環境オブジェクト変数への参照であり、おそらく .data は WEB-INF ディレクトリを指すプロパティであると推測しています。

ドキュメンテーションは、このような説明のつかない発言で間違いなく私たちをからかっています。Lotus Expeditor のドキュメントhttp://publib.boulder.ibm.com/infocenter/ledoc/v6r2/index.jsp?topic=/com.ibm.rcpに、似たようなもの ( ${rcp.*} など) がいくつかあります。.tools.doc.admin/updatingclientconfigurationsusingmanualupdates.html - チェックしてください。私はそこでこの小さな宝石を見つけました:

Lotus Expeditor プラットフォームは、システム・プロパティー rcp.data を使用してワークスペースの場所を識別します。

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

私が知る限り、これらの変数文字列は、オペレーティング システムの環境変数と expeditor プロパティ変数にアクセスできます。この機能がドミノ/XPages システムにどのように組み込まれたかはまだ文書化されていませんが、Expeditor チームの多くの人々が現在 XSP チームに所属しています。Expeditorのドキュメントで見つけた手がかりは次のとおりです。

>システム環境変数の使用を指定するには、プレースホルダー ${env.”system environment variable”} を使用します。

プレースホルダー ${prop.”rcplauncher_property”} は、rcplauncher.properties からのプロパティの使用を指定するために使用されます。

したがって、資格情報を rcplauncher.properties に入れ、${prop.*} 変数を介してそれらを参照することができます。

于 2013-08-06T17:38:12.673 に答える
0

これを修正するには、コア XPages ランタイム修正が必要です。コアとは、X​​Pages 拡張ライブラリだけでは修正できないものを意味します。したがって、この修正は、次の完全な Domino リリースでのみ利用可能になります。

于 2015-09-07T14:03:05.920 に答える