我有一個非常簡單的webapp項目,使用maven和jetty,直到現在一直工作得很好。但是現在我需要使用JNDI來設置MySQL連接池,因爲數據庫連接總是超時。具有DataSource的jetty-env.xml導致mvn上的WebAppContext失敗jetty:run
的一切都在這裏首先是我的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>
現在我在創建的文件夾/ src目錄/主/ web應用/ WEB-INF碼頭-env.xml具有以下內容:
<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>
但問題是,作爲碼頭 - 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.
所以,我怎麼能得到這個工作?我不得不爲我需要的WebSocket支持使用碼頭8.x版和遠程服務器的生產將運行碼頭8
編輯 之前帕維爾Veller的答案,我嘗試了以下內容:部署組裝戰爭遠程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.
所以它好像有衝突的多個類加載。
EDIT2 按照要求由帕維爾我用一個簡化的Web應用程序,你可以找到here on Dropbox重建錯誤。這是一個壓縮的eclipse maven項目。
此問題與數據源無關。我根本沒有jetty-env.xml。 – Lucky