jetty-env.xml com DataSource leva à falha do WebAppContext no mvn jetty: run

Eu tenho um projeto webapp muito simples com maven e jetty que tem funcionado muito bem até agora. Mas agora eu preciso configurar o pool de conexão do MySQL com o JNDI, pois as conexões do banco de dados sempre atingem o tempo limite.

Primeiro de tudo, aqui está o conteúdo relevante do meu 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>

Agora criei um jetty-env.xml na pasta / src / main / webapp / WEB-INF com o seguinte conteúdo:

<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>

Mas o problema é que eu não posso nem testar se esta conexão funciona como o plugin maven-jetty não consegue iniciar o objetivo

mvn jetty:run

com o seguinte erro:

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.

Então, como posso fazer isso funcionar? Eu sou forçado a usar o Jetty versão 8.x como eu preciso de suporte WebSocket e como o servidor produtivo remoto estará executando o Jetty 8.

EDITAR Antes da resposta de Pavel Veller, eu tentei o seguinte: Implantei o war montado no servidor jetty8 remoto e recebi o mesmo erro apenas que o erro anterior agora é o seguinte:

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.

Portanto, parece que há vários carregadores de classes em conflito.

EDIT2 Como solicitado por Pavel eu recriou o erro com um webapp simplificado que você pode encontraraqui no Dropbox. É um projeto zip eclipse maven.

questionAnswers(5)

yourAnswerToTheQuestion