このチュートリアルを完了しようとしています:
https://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html
その一部は、データベースをセットアップし、データソースと接続プールを使用して接続を確立しようとしています。
チュートリアルにあるすべてのことを行いましたが、コードを実行しようとすると、次のエラーが発生します。
javax.servlet.jsp.JspException: 接続を取得できません。DataSource が無効です: "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 にリソース参照がないことを示すトラブルシューティング セクションがあります。ええと...私は1つ持っています。これは次のとおりです。
<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>
私はこの問題を 1 日 16 時間、2 日以上解決しようとしていますが、まだ運がありません。
何が悪いのか分かりますか?私はすべてのグーグルとスタックオーバーフローを閲覧し、同様の問題を見つけましたが、彼らが与える解決策は「mysqlドライバーがサーバー上の正しいフォルダーにあることを確認してください」です。
dataSource オブジェクトなしでデータベースに接続するのに、データベースに接続できないのはなぜですか?