继Wicket 1.5领先后,我正在将一个项目从Jetty 6.1.25转换为7.5.0.v20110901。我现有的Start.java
包含以下设置,我用它来配置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()});
然后我的jetty-env.xml
有以下内容:
<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>
这在Jetty 6中效果很好,但在7中,org.mortbay.jetty.plus.webapp.Configuration
似乎不存在(或者我可能错过了一个Jar)。
有人可以就如何使用Jetty 7配置JNDI给我一些指导吗?
答案 0 :(得分:5)
将以下内容放入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>
然后修改Start.java
以定义以下属性:
System.setProperty("java.naming.factory.url.pkgs", "org.eclipse.jetty.jndi");
System.setProperty("java.naming.factory.initial", "org.eclipse.jetty.jndi.InitialContextFactory");
并将以下配置添加到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() });
我blog的详细信息。
答案 1 :(得分:4)
从Jetty 7开始,包名称已从org.mortbay.jetty
更改为org.eclipse.jetty
。
此外,版本7.2.0中重命名了org.eclipse.jetty.plus.webapp.Configuration
,新名称为 PlusConfiguration
。我猜这是为了避免与org.eclipse.jetty.webapp.Configuration
发生冲突。