0

8.5.3Dominoサーバーにデプロイする.jarファイルがいくつかあります。

コンソールコマンド「tell http osgi diag <bundle name>」が機能し、バンドルが存在することを示します。しかし、jarからインポートステートメントを持つNotes Java Agentを起動すると、ドミノコンソールはこれらのクラスのNoClassDefFoundErrorエラーを出力します。

元々saxon9he.jarと呼ばれていた.jarの例:

[1834:0036-1E84] 24.08.2012 11:21:14   HTTP JVM: Exception in thread "AgentThread:JavaAgent"
[1834:0037-1E84] 24.08.2012 11:21:14   HTTP JVM: java.lang.NoClassDefFoundError:net.sf.saxon.Version
[1834:0039-1E84] 24.08.2012 11:21:14   HTTP JVM: at JavaAgent.NotesMain(Unknown Source)
[1834:003B-1E84] 24.08.2012 11:21:14   HTTP JVM: at lotus.domino.AgentBase.runNotes(Unknown Source)
[1834:003D-1E84] 24.08.2012 11:21:14   HTTP JVM: at lotus.domino.NotesThread.run(Unknown Source)
[1834:003F-1E84] 24.08.2012 11:21:14   HTTP JVM: Caused by:
[1834:0040-1E84] 24.08.2012 11:21:14   HTTP JVM: java.lang.ClassNotFoundException: net.sf.saxon.Version
[1834:0042-1E84] 24.08.2012 11:21:14   HTTP JVM: at lotus.domino.AgentLoader.loadClass(Unknown Source)
[1834:0044-1E84] 24.08.2012 11:21:14   HTTP JVM: at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
[1834:0046-1E84] 24.08.2012 11:21:14   HTTP JVM: ... 3 more

これらの.jarファイルの中には、完全に自分で作成したものもあれば、オープンソースプロジェクトから提供されたものもあります。これらの瓶。ファイルは、「WebContent」のDomino DesignerのJavaビューで作成されたいくつかのJavaエージェント、XPages、およびクラスのインポート命令を介して使用されます。これらのパッケージはさまざまな設計要素で使用されており、これらのファイルとパッチを取得する必要のあるドミノサーバーが約100台あります。そのため、それぞれのローカルファイルシステムにこれらのパッケージを配置したくありません。

これは私が瓶を手に入れるためにこれまでにしたことです。私のドミノサーバーへのファイル:

これらのjarファイルをインポートしました。Eclipse 4.2クライアントのファイルを新しい「既存のJarからのプラグインプロジェクト」に入れ、インポートパッケージとエクスポートパッケージを構成しました。(私はこれらのjar.FilesからBnd-Projectsを作成して、適切なOSGI対応のマニフェストファイルを作成しようとしましたが、残念ながらそれはうまくいきませんでした)その後、プラグインを含む機能プロジェクトを作成しました。最後に、その機能をEclipseの新しいUpdate-Siteプロジェクトにインポートして、ビルドしました。

テンプレート「StdEclipseUpdateSite」(バージョン8.5.3(04.03.2011)から作成したデータベースでこのsite.xmlを選択しました。このデータベースは、8.5.3Dominoサーバーx64の「OSGI_HTTP_DYNAMIC_BUNDLES」パラメーターを介してNotes.iniで参照されます。テスト目的で、Windows7x64でローカルに実行しています。

私はこの問題に数日間取り組んできました。osgiについて読んだり、同様の問題についてグーグルで調べたりしましたが、自分でこれを行うことはできませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

1

これは古い質問であることは知っています-展開の問題を探して偶然見つけました:-)

つまり、エージェント JVM と XPages JVM は同じではありません。そのため、「古い」エージェント (および Web サービス) は、更新サイト経由で OSGi にデプロイされたものを認識しません。

使用できる唯一のオプションは、jar ファイルをサーバーのプログラム ライブラリの jvm/lib/ext にコピーすることです。それはうまくいきます。jar ファイルをエージェント (または Java スクリプト ライブラリ) に追加することさえ考慮すべきではありません。これは、使用前に jar ファイルをデタッチするメカニズムにメモリ リークがあるためです。

ですから、このように考えてください。「新しい Java の世界」への移行には、古いテクノロジ (主にエージェント) は関与しません。Domino でタスクをスケジュールするための新しいメカニズムに注意する必要があります。個人的には、DOTS/Tasklets が前進すると信じていますが、「それを包み込み」、タスクのセットアップを容易にするソリューションが依然として必要です。

/ジョン

于 2013-11-14T21:18:48.940 に答える
1

OSGI バンドルはクラシック エージェントには表示されません。これらのタスクを実行するには、DOTS プラグイン サービスを使用することをお勧めします。 http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=OSGI%20Tasklet%20Service%20for%20IBM%20Lotus%20Domino

于 2012-08-24T13:09:40.683 に答える