2011-10-28 19 views
8

Po prowadzeniu Wicket 1.5, konwertuję projekt z Jetty 6.1.25 na 7.5.0.v20110901. My istniejący Start.java zawiera następującą konfigurację, której używam do konfigurowania JNDI:Jetty 7: konfigurowanie JNDI dla 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()}); 

Wtedy mój jetty-env.xml ma następujący:

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

To był świetny w Jetty 6, ale w 7, org.mortbay.jetty.plus.webapp.Configuration robi nie wydaje się istnieć (a może brakuje mi słoiczka).

Czy ktoś może dać mi wskazówki, jak skonfigurować JNDI z Jetty 7?

Odpowiedz

5

Umieść następujący w src/test/molo/molo-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> 

następnie zmodyfikować Start.java zdefiniować następujące właściwości:

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

i dodaj następująca konfiguracja do 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() }); 

Pełne informacje na mój numer blog.

4

Począwszy od Jetty 7, nazwa pakietu została zmieniona z org.mortbay.jetty na org.eclipse.jetty.

Ponadto zmieniono nazwę org.eclipse.jetty.plus.webapp.Configuration w wersji 7.2.0, a nowa nazwa to PlusConfiguration. Zgaduję, że zrobiono to, aby uniknąć konfliktu nazwy z org.eclipse.jetty.webapp.Configuration.

Powiązane problemy