0

Connections サーバーと通信するスタンドアロン Java アプリケーションの作成に成功しました。エンドポイントは src\META-INF\managed-beans.xml で定義され、sbt.properties はプロジェクトのルートに格納されます。

エージェントを Java エージェントとして Notes データベースに移動したいと考えています。Java パースペクティブでは、データベースに WebContent\WEB-INF フォルダーがあることがわかりますが、同様の META-INF フォルダーはありません。そこに managed-beans.xml を配置してもうまくいかないようです。また、WebContent\WEB-INF\faces-config.xml 内でマネージド Bean を定義しようとしましたが、成功しませんでした (これまで読んだ限りでは、WEB-INF は XPages と Web 作業に適しているようですが、 META-INF はスタンドアロン Java エージェント用です。

managed-bean.xml を sbt.user-directory (私のマシンでは C:\Program Files (x86)\IBM\Lotus\Notes\framework) に保存することで、ファイルを読み取ることができましたが、例外がありました。xml ファイルをノーツ データベース内に保存できれば、もっといいのですが。

通常の NotesMain() 内のコード スニペットは次のとおりです。

RuntimeFactory runtimeFactory = new RuntimeFactoryStandalone();
Application application = runtimeFactory.initApplication(null);
Context context = Context.init(application, null, null);

BasicEndpoint ep = (BasicEndpoint)EndpointFactory.getEndpoint("connections"); 

編集: まだ成功していませんが、SBTPlayground.nsf の META-INF ファイルが Core/Java フォルダーにあることがわかりました (Java パースペクティブから見た場合)。そこに自分の managed-beans.xml も配置しようとしましたが、エージェントはそれを読み取れませんでした (まだ!)。

4

1 に答える 1

1

faces-config.xml は、コードが xpages からトリガーされた場合にのみ機能します。これは、java-agent を実行する場合には当てはまりません。あなたのケースにはいくつかの解決策があります: - マネージド Bean を使用しませんが、エンドポイントをコード内で手動で作成します - 独自のマネージド Bean プロバイダー (これは拡張ポイントです) を作成し、独自のファイル Java エージェントからそれらをロードします大規模なコード ライブラリの使用をサポートするようには設計されていません。呼び出されるたびに新しいクラスローダーを作成し、すべてのクラスをリロードします。これにより、パフォーマンスの問題が発生する可能性があります。この問題は、XPages 内でコードを実行してエージェント (XAgents) から XPage をトリガーするか、HTTP タスク内で Eclipse ジョブを使用するか (いくつかの例が OpenNTF で利用可能です)、OpenNTF の「DOTS」フレームワークを使用することで解決できます。 .

于 2013-10-25T12:45:31.053 に答える