Skip to content
This repository was archived by the owner on May 28, 2018. It is now read-only.

InjectionManagerFactory not found with OSGi singe bundles #3588

Open
JohneDoe opened this issue Jun 19, 2017 · 6 comments
Open

InjectionManagerFactory not found with OSGi singe bundles #3588

JohneDoe opened this issue Jun 19, 2017 · 6 comments

Comments

@JohneDoe
Copy link

Hi,

if i use a "all-in-one" jersey jar i can use my Servlets.
if i use all the single bundles i got an error

some of the used bundles

javax.annotation:javax.annotation-api:jar:1.2
javax.validation:validation-api:jar:1.1.0.Final
javax.ws.rs:javax.ws.rs-api:jar:2.1-m09
**org.glassfish.hk2:hk2-api:jar:2.5.0-b36**
org.glassfish.hk2:hk2-locator:jar:2.5.0-b36
org.glassfish.hk2:hk2-utils:jar:2.5.0-b36
**org.glassfish.hk2:osgi-resource-locator:jar:1.0.1**
org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b36
org.glassfish.hk2.external:javax.inject:jar:2.5.0-b36
org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.26-b06
org.glassfish.jersey.containers:jersey-container-servlet:jar:2.26-b06
org.glassfish.jersey.core:jersey-client:jar:2.26-b06
org.glassfish.jersey.core:jersey-common:jar:2.26-b06
org.glassfish.jersey.core:jersey-server:jar:2.26-b06
org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.26-b06
org.glassfish.jersey.ext:jersey-mvc:jar:2.26-b06
**org.glassfish.jersey.inject:jersey-hk2:jar:2.26-b06**
org.glassfish.jersey.media:jersey-media-jaxb:jar:2.26-b06
org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.26-b06
org.glassfish.jersey.media:jersey-media-multipart:jar:2.26-b06
org.glassfish.jersey.media:jersey-media-sse:jar:2.26-b06
org.javassist:javassist:jar:3.20.0-GA
org.jvnet.mimepull:mimepull:jar:1.9.6
com.fasterxml.jackson.annotation:2.8.5
com.fasterxml.jackson.core:jackson-core:2.8.5
com.fasterxml.jackson.core:jackson-databind:2.8.5
com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.8.5
com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.8.5
com.fasterxml.jackson.core:jackson-annotations:2.8.5
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.8.5

The Error:

java.lang.IllegalStateException: InjectionManagerFactory not found.
	at org.glassfish.jersey.internal.inject.Injections.lambda$lookupInjectionManagerFactory$0(Injections.java:98)
	at java.util.Optional.orElseThrow(Unknown Source)
	at org.glassfish.jersey.internal.inject.Injections.lookupInjectionManagerFactory(Injections.java:98)
	at org.glassfish.jersey.internal.inject.Injections.createInjectionManager(Injections.java:93)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:282)
	at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:335)
	at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:178)
	at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:370)
	at javax.servlet.GenericServlet.init(GenericServlet.java:158)
	at org.apache.felix.http.base.internal.handler.ServletHandler.init(ServletHandler.java:122)
	at org.apache.felix.http.base.internal.handler.WhiteboardServletHandler.init(WhiteboardServletHandler.java:57)
	at org.apache.felix.http.base.internal.registry.ServletRegistry.tryToActivate(ServletRegistry.java:358)
	at org.apache.felix.http.base.internal.registry.ServletRegistry.addServlet(ServletRegistry.java:161)
	at org.apache.felix.http.base.internal.registry.PerContextHandlerRegistry.registerServlet(PerContextHandlerRegistry.java:206)
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager.registerWhiteboardService(WhiteboardManager.java:681)
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager.addWhiteboardService(WhiteboardManager.java:590)
	at org.apache.felix.http.base.internal.whiteboard.tracker.WhiteboardServiceTracker.added(WhiteboardServiceTracker.java:104)
	at org.apache.felix.http.base.internal.whiteboard.tracker.WhiteboardServiceTracker.addingService(WhiteboardServiceTracker.java:79)
	at org.apache.felix.http.base.internal.whiteboard.tracker.WhiteboardServiceTracker.addingService(WhiteboardServiceTracker.java:36)
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
	at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
	at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
	at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
	at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4579)
	at org.apache.felix.framework.Felix.registerService(Felix.java:3571)
	at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:887)
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:874)
	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:132)
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:941)
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:741)
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:675)
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$1.run(AbstractComponentManager.java:453)
	at org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:103)
	at java.lang.Thread.run(Unknown Source)
@pavelbucek
Copy link
Member

you need to add

org.glassfish.jersey.inject:jersey-hk2:jar:2.26-b06

@pavelbucek
Copy link
Member

Ah, it already is on your list. In that case, you might need to share a reproducer or debug serviceloader call by yourself..

@pavelbucek pavelbucek reopened this Jun 20, 2017
@JohneDoe
Copy link
Author

JohneDoe commented Jun 20, 2017

I think it is is a problem with org.glassfish.hk2.osgi-resource-locator.
The bundle did not activate. because of that it could not read the META-INF/services and lookup for InjectionManagerFactory

More Details:
https://groups.google.com/forum/#!topic/bndtools-users/NuAmCd6sBaw

@pavelbucek
Copy link
Member

org.glassfish.hk2.osgi-resource-locator is part of hk2, not Jersey - can you please file the issue there? (https://github.com/javaee/hk2/issues)

@JohneDoe
Copy link
Author

here is the Issue on HK2
javaee/hk2#358

is thought that org.glassfish.jersey.inject:jersey-hk2 can require org.glassfish.hk2:osgi-resource-locator and let it run befor jersey starts

@pavelbucek
Copy link
Member

have you tried that approach?

# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants