[
https://issues.apache.org/jira/browse/GERONIMO-6560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15907147#comment-15907147
]
ASF GitHub Bot commented on GERONIMO-6560:
------------------------------------------
GitHub user stefanseifert opened a pull request:
https://github.com/apache/geronimo-specs/pull/6
GERONIMO-6560 JSON spec jar is not able to load provider in an OSGi
environment
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/stefanseifert/geronimo-specs
feature/GERONIMO-6560-json-osgi-serviceloader
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/geronimo-specs/pull/6.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #6
----
commit af5b9c47a7ba03a8cc1b824af5949411eac54943
Author: sseifert <[email protected]>
Date: 2017-03-13T10:09:26Z
GERONIMO-6560 add Require-Capability header for OSGi ServiceLoader support
commit 04aef91eae1edd266ef4150bdd38f52e2ade3ccc
Author: sseifert <[email protected]>
Date: 2017-03-13T10:23:15Z
GERONIMO-6560 switch to ServiceLoader implementation instead of parsing
META-INF/services/ files manually
remove reflection-based OSGi support code which did not work anyway
----
> JSON spec jar is not able to load provider in an OSGi environment
> -----------------------------------------------------------------
>
> Key: GERONIMO-6560
> URL: https://issues.apache.org/jira/browse/GERONIMO-6560
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Reporter: Robert Munteanu
>
> I am trying to use
> org.apache.geronimo.specs:geronimo-json_1.0_spec:1.0-alpha-1 together with
> Apache Johnzon in a minimal OSGi environment ( see
> https://lists.apache.org/thread.html/52ecda6f7b859fa9cdd4d9fb64d6f7a3b54f29f971e5536e844d9150@%3Cdev.johnzon.apache.org%3E
> for more details ).
> Looking at the manifest of the JSON spec I can see it has no way of loading
> classes from another jar, and it fails at runtime:
> {noformat}javax.json.JsonException: org.apache.johnzon.core.JsonProviderImpl
> not
> found
> at
> javax.json.spi.JsonProvider.doLoadProvider(JsonProvider.java:132)
> at javax.json.spi.JsonProvider.provider(JsonProvider.java:64)
> at javax.json.Json.createGenerator(Json.java:48)
> at
> ro.lmn.routeradmin.web.impl.AdminServlet.doGet(AdminServlet.java:33)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> at
> org.apache.felix.http.base.internal.handler.ServletHandler.handle(Servl
> etHandler.java:85)
> at
> org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(I
> nvocationChain.java:79)
> at
> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispat
> cher.java:124)
> at
> org.apache.felix.http.base.internal.DispatcherServlet.service(Dispatche
> rServlet.java:61)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> at
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:5
> 83)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler
> .java:224)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler
> .java:1174)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:51
> 1)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.
> java:185)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.
> java:1106)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.jav
> a:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(Contex
> tHandlerCollection.java:213)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.j
> ava:134)
> at org.eclipse.jetty.server.Server.handle(Server.java:524)
> at
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:319)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:
> 253)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(Abstract
> Connection.java:273)
> at
> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
> at
> org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.
> java:93)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executePro
> duceConsume(ExecuteProduceConsume.java:303)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceCon
> sume(ExecuteProduceConsume.java:148)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(Execut
> eProduceConsume.java:136)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.
> java:671)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.j
> ava:589)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.johnzon.core.JsonProviderImpl
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at
> javax.json.spi.JsonProvider.doLoadProvider(JsonProvider.java:129)
> ... 32 more{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)