Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-6560

JSON spec jar is not able to load provider in an OSGi environment

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Security Level: public (Regular issues)
    • Labels:
      None

      Description

      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:

      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

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                rombert Robert Munteanu
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: