我正在尝试完成本教程:
https://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html
其中一部分是设置数据库并尝试使用数据源和连接池建立连接。
我做了本教程中的所有内容,但是当我尝试运行我的代码时,出现以下错误:
javax.servlet.jsp.JspException:无法获得连接,数据源无效:“java.sql.SQLException:找不到适合 jdbc/affablebean 的驱动程序”
这是抛出它的代码:
<sql:query var = "result" dataSource = "jdbc/affablebean">
SELECT * FROM category, product
WHERE category.id = product.category_id
</sql:query>
我尝试在不使用连接池和数据源的情况下连接到数据库,它就像一个魅力。
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver registered");
}
catch (ClassNotFoundException ex) {
Logger.getLogger(SqlService.class.getName()).log(Level.SEVERE, null, ex);
}
这意味着驱动程序位于 glassfish 目录中的正确 lib 文件夹中,因此问题一定出在其他地方。
本教程有一个故障排除部分,他们描述了如果我收到这种错误“没有为 jdbc/affablebean 找到合适的驱动程序”,这意味着我的 web.xml 中没有资源引用。嗯......我有一个,它是:
<resource-ref>
<description>Connects to database for AffableBean application</description>
<res-ref-name>jdbc/affablebean</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
我一直在尝试每天 16 小时解决这个问题两天多,但仍然没有运气。
你们有什么想法吗?我浏览了所有的 google 和 stackoverflow 并发现了类似的问题,但他们给出的解决方案是“确保 mysql 驱动程序位于服务器上的正确文件夹中”。
为什么我在没有 dataSource 对象的情况下连接到数据库但无法连接到数据库?