Jetty 7: Configuring JNDI for Start.java

Following the example of Wicket 1.5, I am converting a project from Jetty 6.1.25 to 7.5.0.v20110901. My existing Start.java contains the following setup, which I use to configure JNDI:

  EnvConfiguration envConfiguration = new EnvConfiguration(); URL url = new File("src/main/webapp/WEB-INF/jetty-env.xml").toURI().toURL(); envConfiguration.setJettyEnvXml(url); bb.setConfigurations(new Configuration[]{new WebInfConfiguration(), envConfiguration, new org.mortbay.jetty.plus.webapp.Configuration(), new JettyWebXmlConfiguration(), new TagLibConfiguration()}); 

Then my jetty-env.xml has the following:

 <Configure class="org.mortbay.jetty.webapp.WebAppContext"> <New class="org.mortbay.jetty.plus.naming.Resource"> <Arg>jdbc/myapp</Arg> <Arg> <New class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <Set name="driverClassName">com.mysql.jdbc.Driver</Set> <Set name="url">jdbc:mysql://localhost/myapp?characterEncoding=utf8</Set> <Set name="username">username</Set> <Set name="password">password</Set> </New> </Arg> </New> </Configure> 

This works fine on Jetty 6, but in 7, org.mortbay.jetty.plus.webapp.Configuration doesn't seem to exist (or maybe I'm missing a Jar).

Can someone give me some guidance on configuring JNDI with Jetty 7?

+8
java jetty wicket jndi
source share
2 answers

Put the following in src / test / jetty / jetty-env.xml:

 <Configure id="wac" class="org.eclipse.jetty.webapp.WebAppContext"> <New class="org.eclipse.jetty.plus.jndi.EnvEntry"> <Arg>jdbc/mydatasource</Arg> <Arg> <New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"> <Set name="Url">jdbc:mysql://localhost/mydatabase?characterEncoding=utf8</Set> <Set name="User">username</Set> <Set name="Password">password</Set> </New> </Arg> </New> </Configure> 

Then modify Start.java to define the following properties:

 System.setProperty("java.naming.factory.url.pkgs", "org.eclipse.jetty.jndi"); System.setProperty("java.naming.factory.initial", "org.eclipse.jetty.jndi.InitialContextFactory"); 

And add the following configuration to WebAppContext:

 EnvConfiguration envConfiguration = new EnvConfiguration(); URL url = new File("src/test/jetty/jetty-env.xml").toURI().toURL(); envConfiguration.setJettyEnvXml(url); bb.setConfigurations(new Configuration[]{ new WebInfConfiguration(), envConfiguration, new WebXmlConfiguration() }); 

Details of my blog .

+5
source share

Starting with Jetty 7, the package name has been changed from org.mortbay.jetty to org.eclipse.jetty .

In addition, org.eclipse.jetty.plus.webapp.Configuration was renamed in version 7.2.0, and the new name is PlusConfiguration . I assume that this was done to avoid a name clash using org.eclipse.jetty.webapp.Configuration .

+4
source share

All Articles