2012-01-18 106 views
0

我使用JBoss AS 7.0.2。我想創建到MySQL服務器的老辦法的連接(我知道我應該使用JNDI,但我只需要一些快速的東西):JBOSS AS 7和com.mysql.jdbc.Driver錯誤

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
con = DriverManager.getConnection(.....); 

我有mysql-連接器的Java-5.1.18- bin.jar包含在C:\ Java \ jboss-as-7.0.2.Final \ standalone \ deployments下。我也在構建路徑下添加它。我可以通過Data Source Explorer查看我的表格。但是,當我試圖通過代碼連接到它,它拋出異常,當它試圖創建新實例:

Class.forName("com.mysql.jdbc.Driver").newInstance(); 

的ClassNotFoundException的catch子句捕獲該異常:

Error: com.mysql.jdbc.Driver from [Module "deployment.Seminarska.war:main" from Service Module Loader] 

我發現this螺紋,此解決方案:

通常,您不應該在您的戰爭 文件中包含JDBC驅動程序。

我建議你標記驅動程序提供,並將其添加到服務器的lib目錄 。

是什麼意思標記驅動程序提供?如何做到這一點?

回答

5

「將驅動程序標記爲已提供」與您指定如何使用Maven作爲構建工具指定模塊的依賴關係有關。依賴關係可以有不同的作用域,「提供」意味着編譯需要該特定的依賴關係,但將由運行時環境(通常是應用服務器)提供,因此它不應該包含在打包的工件中(如戰爭)。

Maven的依賴示波器這裏

更多:

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

關於如何在JBoss的數據源配置AS 7,你可以在這裏找到說明:

https://community.jboss.org/wiki/DataSourceConfigurationInAS7