Did you manage to get passed this? If so, how did you do it? Thanks -
On Tuesday, July 10, 2018 at 3:37:17 AM UTC-5, Jeff Fry wrote: > > I read the dependencies and class loading page and I don't think these 3rd > party libraries have this issue. I switched over to debugging with the > Jenkins Jetty debug server and I get a slightly different stacktrace below. > What I notice now is that *JettyAndServletApiOnlyClassLoader > (**https://github.com/jenkinsci/maven-hpi-plugin/blob/master/src/main/java/org/jenkinsci/maven/plugins/hpi/JettyAndServletApiOnlyClassLoader.java > > <https://github.com/jenkinsci/maven-hpi-plugin/blob/master/src/main/java/org/jenkinsci/maven/plugins/hpi/JettyAndServletApiOnlyClassLoader.java>* > *)* is being used. This class loader looks to restrict class loading from > the web application. My code is being initiated from the Jenkins UI to > validate connection parameters. Is that what's going on? Calls from the > Jenkins web app cannot dynamically load 3rd party classes? > > ------- > @Override > protected Class<?> findClass(String name) throws ClassNotFoundException { > if (name.startsWith("javax.") > || name.startsWith("org.eclipse.jetty.")) > return jettyClassLoader.loadClass(name); > else > throw new ClassNotFoundException(name); > } > ------ > > java.lang.ClassNotFoundException: com.vmware.cis.SessionStub > at > org.jenkinsci.maven.plugins.hpi.*JettyAndServletApiOnlyClassLoader*.findClass(JettyAndServletApiOnlyClassLoader.java:38) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at > org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:560) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at com.vmware.vapi.bindings.StubFactory.createStub(StubFactory.java:74) > Caused: java.lang.RuntimeException > at com.vmware.vapi.bindings.StubFactory.createStub(StubFactory.java:93) > at > hudson.plugins.vmware.authentication.VapiAuthenticationHelper.loginByUsernameAndPassword(VapiAuthenticationHelper.java:73) > > > On Saturday, July 7, 2018 at 3:42:03 AM UTC-7, Jeff Fry wrote: >> >> My plugin uses a 3rd party library that dynamically loads some classes. The >> exception below occurs from the jelly UI where the library is called to >> validate a connection. I have all the required jars from the 3rd party >> library included in the plugins WEB-INF/lib and validated this class file >> (com.vmware.cis.SessionStub) is in fact there. This feels like a Jenkins >> class loading quirk. How could I troubleshoot and fix? >> >> >> >> java.lang.ClassNotFoundException: com.vmware.cis.SessionStub >> at java.net.URLClassLoader.findClass(URLClassLoader.java:381) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >> at >> org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:560) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >> at com.vmware.vapi.bindings.StubFactory.createStub(StubFactory.java:74) >> Caused: java.lang.RuntimeException >> at com.vmware.vapi.bindings.StubFactory.createStub(StubFactory.java:93) >> at >> hudson.plugins.vmware.authentication.VapiAuthenticationHelper.loginByUsernameAndPassword(VapiAuthenticationHelper.java:69) >> at >> hudson.plugins.vmware.MachineCenter.testMachineCenterLogin(MachineCenter.java:213) >> at >> hudson.plugins.vmware.MachineCenterCredential$DescriptorImpl.doValidate(MachineCenterCredential.java:33) >> at >> java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) >> at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343) >> at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184) >> at >> org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117) >> at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129) >> at >> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) >> at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715) >> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) >> at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248) >> at >> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) >> at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715) >> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) >> 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:841) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) >> at >> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) >> at >> com.cloudbees.jenkins.support.impl.cloudbees.UnrestrictedApiCallsMonitor$ApiMonitorFilter.doFilter(UnrestrictedApiCallsMonitor.java:120) >> at >> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) >> at >> com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37) >> at >> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) >> at >> com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter._doFilter(OfflineSecurityRealmFilter.java:95) >> at >> com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter.doFilter(OfflineSecurityRealmFilter.java:70) >> at >> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) >> at >> com.cloudbees.opscenter.security.ClusterSessionFilter._doFilter(ClusterSessionFilter.java:69) >> at >> com.cloudbees.opscenter.security.ClusterSessionFilter.doFilter(ClusterSessionFilter.java:44) >> at >> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) >> at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125) >> at >> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) >> at >> hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) >> at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) >> 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:142) >> 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:90) >> at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) >> at >> org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) >> at >> hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) >> at >> org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) >> at >> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) >> at >> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) >> at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) >> at >> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) >> at >> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) >> at >> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) >> at >> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) >> at >> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) >> at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) >> at org.eclipse.jetty.server.Server.handle(Server.java:564) >> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) >> at >> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) >> at >> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) >> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) >> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) >> at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> at java.lang.Thread.run(Thread.java:745) >> >> >> Managed Master 2.107.3.4-rolling >> <https://release-notes.cloudbees.com/product/CloudBees+Jenkins+Platform+Private+SaaS+Edition> >> >> >> java.class.path /usr/share/jenkins/jenkins.war >> java.class.version 52.0 >> java.endorsed.dirs /usr/lib/jvm/java-1.8-openjdk/jre/lib/endorsed >> java.ext.dirs >> /usr/lib/jvm/java-1.8-openjdk/jre/lib/ext:/usr/java/packages/lib/ext >> java.home /usr/lib/jvm/java-1.8-openjdk/jre >> java.io.tmpdir /tmp >> java.library.path >> /usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib >> java.runtime.name OpenJDK Runtime Environment >> java.runtime.version 1.8.0_121-b13 >> >> -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/1c6cdc02-eeec-4ad7-aa5e-c20c3eb2b588%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
