I am have a problem with my plugin finding the dependent jar files at 
execution. The plugin is attempting to connect to a qpid message bus and 
the pom contains the dependencies for the required qpid class (pom to be 
included later in this email). 

After the plugin is installed and jenkins restarted, the expected jar files 
are in the plugin directory on the jenkins server. I can then go to the 
"Configure System" page, find my plugin and click the test connection 
button. At that point this error appears in the jenkins log:

Feb 21, 2014 1:24:51 PM 
com.redhat.jenkins.plugins.brew.auth.BrewPrivilegedAction run
SEVERE: In run
javax.naming.NoInitialContextException: Cannot instantiate class: 
org.apache.qpid.jndi.PropertiesFileInitialContextFactory [Root exception is 
java.lang.ClassNotFoundException: 
org.apache.qpid.jndi.PropertiesFileInitialContextFactory]
    at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674)
    at 
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
    at javax.naming.InitialContext.init(InitialContext.java:240)
    at javax.naming.InitialContext.<init>(InitialContext.java:214)
    at 
com.redhat.jenkins.plugins.brew.auth.BrewContext.getConnectionFactoryContext(BrewContext.java:17)
    at 
com.redhat.jenkins.plugins.brew.auth.BrewPrivilegedAction.run(BrewPrivilegedAction.java:29)
    at 
com.redhat.jenkins.plugins.brew.auth.BrewPrivilegedAction.run(BrewPrivilegedAction.java:10)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:357)
    at 
com.redhat.jenkins.plugins.brew.GlobalBrewConfiguration.doTestConnection(GlobalBrewConfiguration.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at 
org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160)
    at 
org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:218)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
    at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
    at 
hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at 
hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at 
hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at 
org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at 
hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
    at 
winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)
    at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
    at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:701)
Caused by: java.lang.ClassNotFoundException: 
org.apache.qpid.jndi.PropertiesFileInitialContextFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at 
winstone.classLoader.WebappClassLoader.loadClass(WebappClassLoader.java:83)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at 
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:85)
    at 
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:74)
    at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671)
    ... 58 more
Feb 21, 2014 1:24:51 PM 
com.redhat.jenkins.plugins.brew.auth.BrewPrivilegedAction run
SEVERE: Unhandled exception in BrewPrivilegedAction.run:
javax.naming.NoInitialContextException: Cannot instantiate class: 
org.apache.qpid.jndi.PropertiesFileInitialContextFactory [Root exception is 
java.lang.ClassNotFoundException: 
org.apache.qpid.jndi.PropertiesFileInitialContextFactory]
    at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674)
    at 
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
    at javax.naming.InitialContext.init(InitialContext.java:240)
    at javax.naming.InitialContext.<init>(InitialContext.java:214)
    at 
com.redhat.jenkins.plugins.brew.auth.BrewContext.getConnectionFactoryContext(BrewContext.java:17)
    at 
com.redhat.jenkins.plugins.brew.auth.BrewPrivilegedAction.run(BrewPrivilegedAction.java:29)
    at 
com.redhat.jenkins.plugins.brew.auth.BrewPrivilegedAction.run(BrewPrivilegedAction.java:10)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:357)
    at 
com.redhat.jenkins.plugins.brew.GlobalBrewConfiguration.doTestConnection(GlobalBrewConfiguration.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at 
org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160)
    at 
org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:218)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
    at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
    at 
hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at 
hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at 
hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at 
org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at 
hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
    at 
winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)
    at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
    at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:701)
Caused by: java.lang.ClassNotFoundException: 
org.apache.qpid.jndi.PropertiesFileInitialContextFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at 
winstone.classLoader.WebappClassLoader.loadClass(WebappClassLoader.java:83)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at 
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:85)
    at 
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:74)
    at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671)
    ... 58 more
Feb 21, 2014 1:24:51 PM 
com.redhat.jenkins.plugins.brew.GlobalBrewConfiguration doTestConnection
SEVERE: Unhandled exception in doTestConnection: 
java.lang.NullPointerException
    at 
com.redhat.jenkins.plugins.brew.GlobalBrewConfiguration.doTestConnection(GlobalBrewConfiguration.java:200)

And here's my pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.jenkins-ci.plugins</groupId>
        <artifactId>plugin</artifactId>
        <version>1.509.4</version><!-- which version of Jenkins is this 
plugin 
            built against? -->
    </parent>

    <groupId>com.redhat.jenkins.plugins</groupId>
    <artifactId>brew</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>hpi</packaging>

    <!-- get every artifact through repo.jenkins-ci.org, which proxies all 
the 
        artifacts that we need -->
    <repositories>
        <repository>
            <id>repo.jenkins-ci.org</id>
            <url>http://repo.jenkins-ci.org/public/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>repo.jenkins-ci.org</id>
            <url>http://repo.jenkins-ci.org/public/</url>
        </pluginRepository>
    </pluginRepositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-common</artifactId>
            <version>0.24</version>
        </dependency>
        <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-client</artifactId>
            <version>0.24</version>
        </dependency>
        <dependency>
            <groupId>javax.jms</groupId>
            <artifactId>jms-api</artifactId>
            <version>1.1-rev-1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-eclipse-sources</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                
<source>${basedir}/target/generated-sources/localizer</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.jenkins-ci.tools</groupId>
                <artifactId>maven-hpi-plugin</artifactId>
                <configuration>
                    <defaultPort>8091</defaultPort>
                    <pluginFirstClassLoader>true</pluginFirstClassLoader>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

The class being loaded 
(org.apache.qpid.jndi.PropertiesFileInitialContextFactory) is in 
qpid-client-0.24.jar, which I can see in the plugin directory.

What am I missing?

Thanks,

-- Greg

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to