私はLiferay(CE 6.2.5 GA6)にメッセージリスナを実装して、作成/更新されたDLFileEntriesを外部DMSに非同期に保存しました。Liferayメッセージリスナ(メッセージバス)クラスパス
tomcatのlib/extフォルダにあるWSクラスのインターフェイスを含むJARファイルを作成しました。
このJARファイルにServiceLocatorクラスがあります。このServiceLocatorクラスは、WebアプリケーションのSpringコンテキストで初期化されています。サービスロケータの初期化は正常に機能しているようで、他のWebアプリケーションのサービスインスタンスにアクセスできます。しかし、MessageListenerクラスからサービスロケータサービスにアクセスしようとすると、instanncesはnullになります。
私が理解しているように、MessageListenerクラスは、web.xml portalContextConfigLocation context-paramを通じてspring-messaging.xmlファイルを使用してインスタンス化されています。メッセージリスナーが実行されるthreadyには、webappとは異なるクラスローダーがあると思われます。そのため、メッセージリスナーが実行されるスレッドのクラスパスを出力しようとしました。クラスパスにtomcatのlib/extフォルダのJARファイルが含まれていないことに驚きました。
これは意図しないのですか?誰も似たような問題で走ったのですか?
何か助けていただければ幸いです。
好奇心が強い、GA6用のTomcatバンドルを使用していますか、このTomcatを別途ダウンロードしましたか? – Paras
こんにちは、私はTomcatバンドルを使います – shimon001