2012-01-18 156 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