jetty-env.xml с DataSource приводит к сбою WebAppContext в mvn jetty:run

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

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

4.0.0
...
war
...
 
    UTF-8
    8.1.0.v20120127
 

    ...
    
        mysql
        mysql-connector-java
        5.1.20
    
    
        org.mortbay.jetty
        jetty-maven-plugin
        ${jetty-version}
        maven-plugin
    

...

    
    
        org.mortbay.jetty
        jetty-maven-plugin
        ${jetty-version}
        
                10
            
        
    
    ...

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

  
    
        jdbc/db
        
            
                jdbc:mysql://www.example.com:3306/mydb
                dbuser
                dbpass
            
        
    

Но проблема в том, что я даже не могу проверить, работает ли это соединение, так как плагин 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.

РЕДАКТИРОВАТЬ До ответа Павла Веллера я пробовал следующее: Развернул собранную войну на удаленном сервере jetty8 и получил ту же ошибку, только предыдущая ошибка теперь выглядит следующим образом:

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.

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

РЕДАКТИРОВАТЬ2 По просьбе Павла я воссоздал ошибку с помощью упрощенного веб-приложения, которое вы можете найти здесь, в Dropbox. Это заархивированный проект eclipse maven.

7
задан ckuepker 30 May 2012 в 06:41
поделиться