3

jetty-mavenプラグインを使用してデータソースを追加できないようです。スローされるエラーはありませんが、コンテキストを見ると、データソースが追加されていません。ファイルへのパスが正しく、ファイルが解析されていることを確認しました(間違ったクラス名を入力するとエラーが発生します)。タグを使用してWebAppContext構成として構成しようとしましたが、このファイルは完全に無視されています。

pom.xml

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>8.1.3.v20120416</version>
  <configuration>
    <jettyXml>somePath/jetty.xml</jettyXml>
  </configuration>
  <dependencies>        
    <dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.0-801.jdbc4</version>
  </dependency>
 </dependencies>
</plugin>

jetty.xml

<Configure class="org.eclipse.jetty.server.Server">

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

Javaコード

Context ctx = new InitialContext();
Context context = (Context) ctx.lookup("java:comp/env");
ds = (DataSource) context.lookup("jdbc/postgres");

どんな助けでもいただければ幸いです。

4

2 に答える 2

1

まだ解決策を探している人は、この質問で受け入れられている回答を参照してください。

ここで重要なのはjetty-env.xml、 ではなくを使用することjetty.xmlです。

参考文献

于 2013-08-21T08:36:11.760 に答える
0

または、単純に web.xml に次を追加します。

<resource-ref>
    <res-ref-name>jdbc/postgres</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
于 2015-12-27T12:35:17.193 に答える