Hi Paul, You can remove the jetty-plus and jetty-jndi jars as plugin dependencies: we put everything onto the plugin's classpath for you. So you only need your hikari and mysql jars.
I think maybe what is happening is that as the first <Arg> of the jndi Resource is empty, it is being removed, so the 2 arg constructor is being called instead. Looks that way from the line numbers anyway. Try putting in there a reference to the Server as the first arg and see if that makes a difference. Meanwhile I'll look into jetty to see why the 2 arg constructor would be used. cheers Jan On 4 August 2016 at 20:56, Paul Römer <[email protected]> wrote: > Hi, > > I try to set up my databases via JNDI for our development environment > which emulates the productive configuration. I decided to configure the > embedded Jetty server that is used by the Maven Jetty plugin. > As I we have 3 webapps I would like to configure the datasources in the > server context. So I added a custom jetty.xml which I reference in Mavens > plugin configuration: > > <plugin> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-maven-plugin</artifactId> > <version>9.3.11.v20160721</version> > <configuration> > <jettyXml>${basedir}/src/main/ > etc/jetty.xml</jettyXml> > > Well, for easy stuff it works like expected and Jetty starts: > > <?xml version="1.0"?> > <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" " > http://www.eclipse.org/jetty/configure.dtd"> > > <Configure id="Server" class="org.eclipse.jetty.server.Server"> > <Set name="stopTimeout">5000</Set> > </Configure> > > But if I add some more serious stuff it fails: > > <?xml version="1.0"?> > <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" " > http://www.eclipse.org/jetty/configure.dtd"> > > <Configure id="Server" class="org.eclipse.jetty.server.Server"> > <Set name="stopTimeout">5000</Set> > <New id="myds" class="org.eclipse.jetty.plus.jndi.Resource"> > <Arg></Arg> > <Arg>jdbc/myds</Arg> > <New class="com.zaxxer.hikari.HikariDataSource"> > <Arg> > <New class="com.zaxxer.hikari. > HikariConfig"> > <Set name="minimumPoolSize">5</Set> > <Set name="maximumPoolSize">20</ > Set> > <Set name="dataSourceClassName"> > com.mysql.jdbc.jdbc2.optional.MysqlDataSource</Set> > <Set name="username">root</Set> > <Set name="password">test</Set> > <Call name="addDataSourceProperty"> > <Arg>url</Arg> > > <Arg>jdbc:mysql://localhost:3306/lportal</Arg> > </Call> > </New> > </Arg> > </New> > </New> > </Configure> > > > Of course I added the mysql-connector and HikariCP as plugin dependencies: > > <plugin> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-maven-plugin</artifactId> > <version>9.3.11.v20160721</version> > <dependencies> > <dependency> > <groupId>com.zaxxer</groupId> > <artifactId>HikariCP</artifactId> > <version>2.4.6</version> > </dependency> > <dependency> > <groupId>mysql</groupId> > <artifactId>mysql-connector-java</artifactId> > <version>5.1.36</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-plus</artifactId> > <version>9.3.11.v20160721</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-jndi</artifactId> > <version>9.3.11.v20160721</version> > </dependency> > </dependencies> > > But I still get: > > [INFO] --- jetty-maven-plugin:9.3.11.v20160721:run (default-cli) @ > webpage-frontend --- > [INFO] Logging initialized @6888ms > [INFO] Configuring Jetty for project: Webpage frontend > [INFO] webAppSourceDirectory not set. Trying src/main/webapp > [INFO] Reload Mechanic: automatic > [INFO] Classes = /home/vaadin/repos/webpage/webpage-frontend/target/ > classes > [INFO] Configuring Jetty from xml configuration file = > /home/vaadin/repos/webpage/webpage-frontend/src/main/etc/jetty.xml > [WARNING] Config error at <New id="myds" class="org.eclipse.jetty.plus. > jndi.Resource"><Arg/><Arg>jdbc/myds</Arg><New class="com.zaxxer.hikari. > HikariDataSource"><Arg> > <New > class="com.zaxxer.hikari.HikariConfig"><Set > name="minimumPoolSize">5</Set><Set name="maximumPoolSize">20</Set><Set > name="dataSourceClassName">com.mysql.jdbc.jdbc2.optional.MysqlDataSource</Set><Set > name="username">root</Set><Set name="password">test</Set><Call > name="addDataSourceProperty"><Arg>url</Arg><Arg>jdbc:mysql:/ > /localhost:3306/lportal</Arg></Call></New> > </Arg></New></New> > [INFO] Jetty server exiting. > [INFO] ------------------------------------------------------------ > ------------ > [INFO] BUILD FAILURE > [INFO] ------------------------------------------------------------ > ------------ > [INFO] Total time: 5.890 s > [INFO] Finished at: 2016-08-04T12:54:51+02:00 > [INFO] Final Memory: 23M/263M > [INFO] ------------------------------------------------------------ > ------------ > [ERROR] Failed to execute goal > org.eclipse.jetty:jetty-maven-plugin:9.3.11.v20160721:run > (default-cli) on project webpage-frontend: Failure: > InvocationTargetException: NullPointerException -> [Help 1] > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute > goal org.eclipse.jetty:jetty-maven-plugin:9.3.11.v20160721:run > (default-cli) on project webpage-frontend: Failure > at org.apache.maven.lifecycle.internal.MojoExecutor.execute( > MojoExecutor.java:212) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute( > MojoExecutor.java:153) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute( > MojoExecutor.java:145) > at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder. > buildProject(LifecycleModuleBuilder.java:116) > at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder. > buildProject(LifecycleModuleBuilder.java:80) > at org.apache.maven.lifecycle.internal.builder.singlethreaded. > SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) > at org.apache.maven.lifecycle.internal.LifecycleStarter. > execute(LifecycleStarter.java:128) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) > 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.codehaus.plexus.classworlds.launcher.Launcher. > launchEnhanced(Launcher.java:289) > at org.codehaus.plexus.classworlds.launcher.Launcher. > launch(Launcher.java:229) > at org.codehaus.plexus.classworlds.launcher.Launcher. > mainWithExitCode(Launcher.java:415) > at org.codehaus.plexus.classworlds.launcher.Launcher. > main(Launcher.java:356) > Caused by: org.apache.maven.plugin.MojoExecutionException: Failure > at org.eclipse.jetty.maven.plugin.AbstractJettyMojo. > startJetty(AbstractJettyMojo.java:488) > at org.eclipse.jetty.maven.plugin.AbstractJettyMojo. > execute(AbstractJettyMojo.java:328) > at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute( > JettyRunMojo.java:170) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo( > DefaultBuildPluginManager.java:134) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute( > MojoExecutor.java:207) > ... 20 more > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at sun.reflect.NativeConstructorAccessorImpl.newInstance( > NativeConstructorAccessorImpl.java:62) > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( > DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > at org.eclipse.jetty.util.TypeUtil.construct(TypeUtil.java:580) > at org.eclipse.jetty.xml.XmlConfiguration$ > JettyXmlConfiguration.newObj(XmlConfiguration.java:787) > at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration. > configure(XmlConfiguration.java:423) > at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration. > configure(XmlConfiguration.java:358) > at org.eclipse.jetty.xml.XmlConfiguration.configure( > XmlConfiguration.java:259) > at org.eclipse.jetty.maven.plugin.ServerSupport. > applyXmlConfigurations(ServerSupport.java:211) > at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.applyJettyXml( > AbstractJettyMojo.java:404) > at org.eclipse.jetty.maven.plugin.AbstractJettyMojo. > startJetty(AbstractJettyMojo.java:427) > ... 24 more > Caused by: java.lang.NullPointerException > at org.eclipse.jetty.plus.jndi.NamingEntry.save(NamingEntry. > java:191) > at org.eclipse.jetty.plus.jndi.Resource.<init>(Resource.java:39) > ... 36 more > [ERROR] > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, > please read the following articles: > [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ > MojoExecutionException > > Any ideas? > > Cheers, > Paul > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/jetty-users > -- Jan Bartel <[email protected]> www.webtide.com *Expert assistance from the creators of Jetty and CometD*
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
