我有一个在Netbeans 6.8中创建的企业应用程序,它与Glassfish V3服务器一起打包。当我尝试部署和运行EAR项目时,我一直从服务器日志中收到以下异常:
SEVERE: jdbc.exc_cnfe_ds
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
从谷歌搜索,通常的解决方案是将包含该类的jar文件(mysql-connector-java-5.1.6-bin.jar)复制到
$glassfish-v3-install-root/glassfish/domains/domain1/lib.
实际上它就是它驻留在Unix服务器上的地方。但是,我在Windows上测试它,并且默认的glassfish安装中不存在“domains / domain1”目录。我手动添加它们并添加了jar,但它没有任何区别。我还将jar作为变量添加到windows类路径中,但这也没有效果。
然后我尝试添加jar文件$ glassfish-v3-install-root / glassfish / lib,这会产生不同的错误:
SEVERE:RAR5111:转换为javax.sql.Datasource时出错 java.lang.ClassCastException:com.mysql.jdbc.Driver无法强制转换为javax.sql.DataSource
我使用与服务器相同的jar文件。我猜这个罐子放错了地方?我不想把它放在项目中,因为这不是它在生产中的部署方式。任何帮助赞赏。
答案 0 :(得分:3)
将jar文件放在$ glassfish-v3-install-root / glassfish / lib中证明是正确的。
"SEVERE: RAR5111 : Error casting to javax.sql.Datasource java.lang.ClassCastException: com.mysql.jdbc.Driver cannot be cast to javax.sql.DataSource"
我认为,错误是由于glassfish服务器上的jdbc池设置不正确造成的。但是转到管理控制台,可以从Netbeans"服务器"选项卡,转到" JDBC","连接池",选择" java.sql.driver"作为资源类型和" com.mysql.jdbc.driver"因为驱动程序类名将摆脱铸造问题。
点击" Ping"顶部附近的按钮,以确保您正在连接。