Maven Jetty プラグインの呼び出しから使用できる JNDI データ ソースを構成しようとしています。これを WAR ファイルの外部で実行しようとしています。これにより、後で Jetty を使用して webapp をデプロイする可能性のある人が、WAR の WEB-INF ディレクトリ内の構成ファイルを編集する必要がなくなります。次のように jetty.xml ファイルを作成しました。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<!-- Atomikos XA aware (but not XA capable) JDBC data source -->
<New id="sbeDataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/myDataSource</Arg>
<Arg>
<New class="com.atomikos.jdbc.nonxa.AtomikosNonXADataSourceBean">
.......
</New>
</Arg>
</New>
</Configure>
次に、次のように Maven プラグイン内からこのファイルを参照しました。
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<jettyConfig>config/jetty.xml</jettyConfig>
</configuration>
</plugin>
ただし、mvn jetty:run-war を介して webapp を実行しようとすると、次のエラーが発生します。
Embedded error:
Object is not of type class org.mortbay.jetty.webapp.WebAppContext
最上位の<Configure>
要素を省略して、新しい JNDI リソースを直接作成しようとすると、次のようになります。
<New id="sbeDataSource" class="org.mortbay.jetty.plus.naming.Resource">
次に、同様のエラーが発生します。
Embedded error:
Object is not of type class org.mortbay.jetty.plus.naming.Resource
何を与える?