我有一个在 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,这产生了不同的错误:
严重:RAR5111:转换到 javax.sql.Datasource 时出错 java.lang.ClassCastException:com.mysql.jdbc.Driver 无法转换为 javax.sql.DataSource
我使用与服务器相同的 jar 文件。我猜 jar 放错地方了?我不想将其放入项目中,因为这不是它在生产中的部署方式。任何帮助表示赞赏。
最佳答案
将 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”按钮以确保您正在连接。
关于java - 在 Windows 中的 Netbeans/Glassfish 上哪里添加 jdbc 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078016/