OSGi の新機能。春にosgiからサービスを受けようとしています。コードの Git リンク: https://github.com/shinevs/SpringIntegrationTest ClassCastException を取得しています。
java.lang.ClassCastException: com.bundle.Activator cannot be cast to com.myInterface.BundleInterface
at com.osgi.OSGiLauncher.lambda$0(OSGiLauncher.java:39)
at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915)
at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
at org.apache.felix.framework.EventDispatcher.run(EventDispatcher.java:1147)
at org.apache.felix.framework.EventDispatcher.access$000(EventDispatcher.java:54)
at org.apache.felix.framework.EventDispatcher$1.run(EventDispatcher.java:102)
at java.lang.Thread.run(Thread.java:748)
Spring サービスから OSGi バンドル jar を初期化しようとしています。OSGi バンドルは、Activator というサービスを登録します。OSGi バンドルが初期化され、Activator が作成されると、Spring から Activator にアクセスしようとします。
注 : OSGi バンドルは別のモジュールであり、テスト目的でこのプロジェクトの一部として追加されています。Spring App は、OSGi バンドルを jar としてのみ必要とします。
実行方法: curl http://localhost:8080/osgi
直面している問題: Activator にアクセスしようとしているときに Spring アプリが ClassCastException をスローしている
これは、Spring と osgi のクラス ローダーが異なるためですか。フラグメントを実装しようとしましたが、それもうまくいきませんでした。