4

我正在尝试在 Jetty 中设置 JNDI 数据源。在 start.ini 文件中,我添加了 jetty-plus.xml 文件,选项如下所示:

OPTIONS=Server,resources,websocket,ext,plus,annotations

然后我在我的上下文文件中添加资源:

<New id="Traildevils" class="org.eclipse.jetty.plus.jndi.Resource">
    <Arg/>
    <Arg>jdbc/Traildevils</Arg>
    <Arg>
        <New class="org.postgresql.ds.PGConnectionPoolDataSource">
            <Set name="User">recom</Set>
            <Set name="Password">recom</Set>
            <Set name="DatabaseName">Traildevils</Set>
            <Set name="ServerName">localhost</Set>
            <Set name="PortNumber">5432</Set>
        </New>
    </Arg>
</New>

postgresql-9.1-901.jdbc4.jar 文件位于我的 war 文件的 WEB-INF/lib 中。

当我现在尝试启动码头时,出现以下错误:

2012-04-12 12:58:09.723:WARN:oejx.XmlConfiguration:Config error at 
<New id="Traildevils" class="org.eclipse.jetty.plus.jndi.Resource"><Arg/>
<Arg>jdbc/Traildevils</Arg>
<Arg>|???<New class="org.postgresql.ds.PGConnectionPoolDataSource">
<Set name="User">recom</Set>
<Set name="Password">recom</Set>
<Set name="DatabaseName">Traildevils</Set>
<Set name="ServerName">localhost</Set><Set name="PortNumber">5432</Set></New>|??</Arg></New> 
java.lang.ClassNotFoundException: org.postgresql.ds.PGConnectionPoolDataSource

我错过了什么?

4

1 回答 1

7

您需要将 postgresql-9.1-901.jdbc4.jar 添加到$JETTY_HOME/lib/ext.

这是因为码头在从您的 WAR 加载类之前初始化了 JNDI 上下文。

于 2012-04-12T11:22:53.580 回答