2011-10-28 17 views
8

Siguiendo el ejemplo de Wicket 1.5, estoy convirtiendo un proyecto de Jetty 6.1.25 a 7.5.0.v20110901. Mi existente Start.java contiene la siguiente configuración, que utilizo para configurar JNDI:Jetty 7: configurando JNDI para Start.java

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()}); 

Entonces mi jetty-env.xml tiene la siguiente:

<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> 

Esto ha funcionado muy bien en el embarcadero 6, pero en 7, org.mortbay.jetty.plus.webapp.Configuration hace no parece existir (o tal vez me falta un tarro).

¿Puede alguien darme alguna orientación sobre cómo configurar JNDI con Jetty 7?

Respuesta

5

Ponga lo siguiente en src/test/embarcadero/muelle de una 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> 

a continuación, modificar Start.java para definir las siguientes propiedades:

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

y añadir la siguiente configuración para 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() }); 

Más detalles en mi blog.

4

Comenzando con Jetty 7, el nombre del paquete se cambió de org.mortbay.jetty a org.eclipse.jetty.

Además, org.eclipse.jetty.plus.webapp.Configuration fue renombrada en la versión 7.2.0 y el nuevo nombre es PlusConfiguration. Supongo que esto fue hecho para evitar un choque de nombres con org.eclipse.jetty.webapp.Configuration.

Cuestiones relacionadas