2011-10-28 20 views
8

Theo sự dẫn dắt của Wicket 1.5, tôi đang chuyển đổi dự án từ Jetty 6.1.25 thành 7.5.0.v20110901. My hiện Start.java chứa các thiết lập sau đây, mà tôi sử dụng để cấu hình JNDI:Cầu tàu 7: định cấu hình JNDI cho 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()}); 

Sau đó jetty-env.xml của tôi có như sau:

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

này đã làm việc rất lớn trong Jetty 6, nhưng trong 7, org.mortbay.jetty.plus.webapp.Configuration làm dường như không tồn tại (hoặc có lẽ tôi đang thiếu một Jar).

Ai đó có thể cho tôi một số hướng dẫn về cách định cấu hình JNDI với Jetty 7 không?

Trả lời

5

Đặt đoạn mã sau vào src/kiểm tra/cầu cảng/cầu cảng-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> 

Sau đó sửa đổi Start.java để xác định các thuộc tính sau:

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

Và thêm cấu hình sau cho 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() }); 

Chi tiết đầy đủ trên số blog của tôi.

4

Bắt đầu với Cầu tàu 7, tên gói đã được thay đổi từ org.mortbay.jetty thành org.eclipse.jetty.

Ngoài ra, org.eclipse.jetty.plus.webapp.Configuration đã được đổi tên trong phiên bản 7.2.0 và tên mới là PlusConfiguration. Tôi đoán điều này đã được thực hiện để tránh xung đột tên với org.eclipse.jetty.webapp.Configuration.