Jetty 7:为Start.java配置JNDI [英] Jetty 7: configuring JNDI for Start.java

查看:102
本文介绍了Jetty 7:为Start.java配置JNDI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Wicket 1.5的带领下,我将一个项目从Jetty 6.1.25转换为7.5.0.v20110901.我现有的Start.java包含以下设置,可用于配置JNDI:

Following Wicket 1.5's lead, I'm 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()});

然后我的jetty-env.xml具有以下内容:

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>

这在Jetty 6中非常有效,但是在7中,org.mortbay.jetty.plus.webapp.Configuration似乎不存在(或者我错过了一个Jar).

This has worked great in Jetty 6, but in 7, org.mortbay.jetty.plus.webapp.Configuration does not seem to exist (or perhaps I'm missing a Jar).

有人可以给我一些有关如何使用Jetty 7配置JNDI的指导吗?

Can someone give me some guidance on how to configure JNDI with Jetty 7?

推荐答案

将以下内容放入src/test/jetty/jetty-env.xml:

Put the following into 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以定义以下属性:

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");

并将以下配置添加到WebAppContext:

And add the following configuration to the 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() });

我的 查看全文

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆