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 bundle jar。OSGi bundle 注册一个名为 Activator 的服务,一旦 OSGi bundle 初始化并创建了 Activator,就会尝试从 Spring 访问 Activator。
注意:OSGi bundle 是另一个模块,它是这个项目的一部分,用于测试目的。Spring App 只需要一个 OSGi 包作为 jar。
如何运行: curl http://localhost:8080/osgi
面临的问题:Spring App 在尝试访问 Activator 时,抛出 ClassCastException
这是由于 spring 和 osgi 中的不同类加载器。我试图实现片段,但这也没有用。