jetty-env.xml с DataSource приводит к сбою WebAppContext на mvn jetty: запустить

У меня действительно простой веб-проект с Maven и Jetty, который до сих пор работал очень хорошо. Но теперь мне нужно настроить пул соединений MySQL с JNDI, так как соединения с базой данных всегда истекают.

Прежде всего, вот соответствующий контент моего pom.xml:

<modelVersion>4.0.0</modelVersion>
...
<packaging>war</packaging>
...
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jetty-version>8.1.0.v20120127</jetty-version>
</properties> 
<dependencies>
    ...
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.20</version>
    </dependency>
    <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty-version}</version>
        <type>maven-plugin</type>
    </dependency>
</dependencies>
...
<build>
    <plugins>
    <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty-version}</version>
        <configuration>
                <scanIntervalSeconds>10</scanIntervalSeconds>
            </configuration>
        </plugin>
    </plugins>
    ...
</build>

Теперь я создал файл jetty-env.xml в папке / src / main / webapp / WEB-INF со следующим содержимым:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">  
    <New id="project-db" class="org.eclipse.jetty.plus.jndi.Resource">
        <Arg>jdbc/db</Arg>
        <Arg>
            <New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
                <Set name="url">jdbc:mysql://www.example.com:3306/mydb</Set>
                <Set name="username">dbuser</Set>
                <Set name="password">dbpass</Set>
            </New>
        </Arg>
    </New>
</Configure>

Но проблема в том, что я даже не могу проверить, работает ли это соединение, так как плагин jetty-maven не запускается на цели

mvn jetty:run

со следующей ошибкой:

WARN:oejw.WebAppContext:Failed startup of context o.m.j.p.JettyWebAppContext
{/,file:/D:/documents/programmierung/workspace/battleships-trunk/src/main/webapp/}
,file:/D:/documents/programmierung/workspace/battleships-trunk/src/main/webapp/

java.lang.IllegalArgumentException: Object of class 
'org.mortbay.jetty.plugin.JettyWebAppContext' is not of type 
'org.eclipse.jetty.webapp.WebAppContext'. 
Object Class and type Class are from different loaders.

Так как я могу заставить это работать? Я вынужден использовать Jetty версии 8.x, так как мне нужна поддержка WebSocket и в качестве удаленного производительного сервера будет работать Jetty 8.

EDIT Before Pavel Veller's answer I tried the following: Deployed the assembled war to the remote jetty8 server and got the same error only that the previous error now reads as follows:

java.lang.IllegalArgumentException: Object of class 
'org.eclipse.jetty.webapp.WebAppContext' is not of type 
'org.eclipse.jetty.webapp.WebAppContext'. 
Object Class and type Class are from different loaders.

Таким образом, кажется, что есть несколько конфликтующих загрузчиков классов.

EDIT2 По просьбе Павла я воссоздал ошибку с упрощенным веб-приложением, которое вы можете найтиздесь на Dropbox, Это молниеносный проект Eclipse Maven.

Ответы на вопрос(5)

Ваш ответ на вопрос