[Blue Ocean] Unknown java.lang.RuntimeException: java.lang.ClassNotFoundException

108 views
Skip to first unread message

陈晓晖

unread,
Jul 21, 2017, 11:53:58 AM7/21/17
to Jenkins Developers
Hi!

 I am developing a plugin for jenkins/blue ocean  base on jenkinsci/blueocean-plugin.  I introduce the  dependency  gmessner/gitlab4j-api which contain org.glassfish.jersey.core:jersey-client:jar:2.25.1. 
When I debug my code , the following code throw an exception:

GitLabApi gitLabApi = new GitLabApi(GitLabApi.ApiVersion.V3, url, accessToken);
try{
    gitLabApi.getGroupApi().getGroups();
    .....
}

 The attached stack trace :

org.gitlab4j.api.GitLabApiException: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
        at org.gitlab4j.api.AbstractApi.handle(AbstractApi.java:304)
        at org.gitlab4j.api.AbstractApi.get(AbstractApi.java:63)
        at org.gitlab4j.api.GroupApi.getGroups(GroupApi.java:33)
        at io.jenkins.blueocean.GitlabEnterpriseScm.validateAccessToken(GitlabEnterpriseScm.java:186)
        at io.jenkins.blueocean.GitlabEnterpriseScm.validateAndCreate(GitlabEnterpriseScm.java:136)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:324)
        at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:167)
        at org.kohsuke.stapler.SelectionInterceptedFunction$Adapter.invoke(SelectionInterceptedFunction.java:36)
        at org.kohsuke.stapler.verb.HttpVerbInterceptor.invoke(HttpVerbInterceptor.java:48)
        at org.kohsuke.stapler.SelectionInterceptedFunction.bindAndInvoke(SelectionInterceptedFunction.java:26)
        at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:100)
        at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:686)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
        at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
        at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
        at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:51)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
        at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
        at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:86)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
        at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
        at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
        at org.eclipse.jetty.server.Server.handle(Server.java:499)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
        at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:103)
        at org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:429)
        at org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:423)
        at org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:285)
        at org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:273)
        at org.gitlab4j.api.AbstractApi.get(AbstractApi.java:61)
        ... 97 more
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
        at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1376)
        at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326)
        at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at javax.ws.rs.client.FactoryFinder.newInstance(FactoryFinder.java:113)
        at javax.ws.rs.client.FactoryFinder.find(FactoryFinder.java:206)
        at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:86)
        ... 102 more

If anyone have idea about this problem ?

Keith Zantow

unread,
Jul 21, 2017, 1:57:04 PM7/21/17
to jenkin...@googlegroups.com
AFAIK JerseyClientBuilder is not a BlueOcean dependency, maybe you have some other plugin(s) misbehaving?

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/7bf25c19-385f-4f33-b510-7aa24327239e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

CrazyPotato

unread,
Jul 22, 2017, 7:39:42 AM7/22/17
to Jenkins Developers
I  have searched  the plugins installed by hpi:run ,but did not find  JerseyClientBuilder

在 2017年7月22日星期六 UTC+8上午1:57:04,Keith Zantow写道:
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.

Daniel Beck

unread,
Jul 22, 2017, 8:16:24 AM7/22/17
to jenkin...@googlegroups.com

> On 22. Jul 2017, at 13:39, CrazyPotato <xhuic...@gmail.com> wrote:
>
> I have searched the plugins installed by hpi:run ,but did not find JerseyClientBuilder
>
> 在 2017年7月22日星期六 UTC+8上午1:57:04,Keith Zantow写道:
> AFAIK JerseyClientBuilder is not a BlueOcean dependency, maybe you have some other plugin(s) misbehaving?
>
> On Fri, Jul 21, 2017 at 8:12 AM, 陈晓晖 <xhuic...@gmail.com> wrote:
> Hi!
>
> I am developing a plugin for jenkins/blue ocean base on jenkinsci/blueocean-plugin. I introduce the dependency gmessner/gitlab4j-api which contain org.glassfish.jersey.core:jersey-client:jar:2.25.1.
> When I debug my code , the following code throw an exception:
>
> GitLabApi gitLabApi = new GitLabApi(GitLabApi.ApiVersion.V3, url, accessToken);
> try{
> gitLabApi.getGroupApi().getGroups();
> .....
> }
>

Could you show your code? Note that your plugin must bundle its transitive library dependencies as needed. _Some_ plugins exist that provide a library shared among other plugins, but those are the exception.

CrazyPotato

unread,
Jul 22, 2017, 11:52:47 AM7/22/17
to Jenkins Developers, m...@beckweb.net
The following is the pom of my plugin.

    <parent>
        <artifactId>blueocean-parent</artifactId>
        <groupId>io.jenkins.blueocean</groupId>
        <version>1.2.0-beta-2-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <name>Gitlab Pipeline for Blue Ocean</name>
    <artifactId>blueocean-gitlab-pipeline</artifactId>
    <packaging>hpi</packaging>

    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


    <dependencies>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-pipeline-api-impl</artifactId>
        </dependency>

        <dependency>
            <groupId>org.gitlab4j</groupId>
            <artifactId>gitlab4j-api</artifactId>
            <version>4.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>pubsub-light</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-git-pipeline</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-github-pipeline</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>gitlab-plugin</artifactId>
        </dependency>
    </dependencies>
</project>


在 2017年7月22日星期六 UTC+8下午8:16:24,Daniel Beck写道:
Reply all
Reply to author
Forward
0 new messages