I have successfully managed to start Apache Felix from code and register an own Bundle.
Following relation between OSGI-projects is needed:
`[OsgiInterface]` -- provides interfaces.
`[OsgiModuleA]` -- (bundle) provides an implementation of those interfaces.
`[OsgiUsage]` -- makes use of one or more bundle.
*knows `[OsgiInterface]` and `[OsgiModuleA]`*
Now I have problems registering a service which implements an interface.
I would guess that my entries in `manifest.mf` files are wrong.
It would be very kind, if someone could look at the code in my **[previous question]**
Let me refer to this question:
I tried to create a *third* project **OsgiInterfaces**, which provides an interface `SomeInterface` in the package `interfaces`. This project is known by both **OsgiModuleA** and **OsgiUsage**.
**OsgiModuleA:** `manifest.mf` has now an additional value `interfaces` for the entry `Import-Package:`. Furthermore, there is an instance of `SomeInterface` provided to the activator.
When the bundle is started, an **`NoClassDefFoundError`** occurs: the interface `SomeInterface` is not known.
Now, that the error is fixed, I can tell, that the most important part was:
Without this, I got `ClassCastException`.
以上就是How do I register a service in OSGi (Apache Felix)?的详细内容，更多请关注web前端其它相关文章！