1

このチュートリアルを完了しようとしています:

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 オブジェクトなしでデータベースに接続するのに、データベースに接続できないのはなぜですか?

4

8 に答える 8

2

私は同じエラーがありました、

リソースタイプを設定すると問題が発生します。

リソースの種類: javax.sql.ConnectionPoolDataSource

使用してみてください:

リソースタイプ:=javax.sql.DataSource

チュートリアルテキストで奇妙なのは(問題)です:

[次へ] をクリックします。手順 5 の [接続プール プロパティの追加] で、次の詳細を指定し ます

しかし、スクリーンショットでは正しいです。

于 2014-07-31T09:11:13.090 に答える
1

このhttps://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html ecommerce チュートリアルの一部でいくつかの問題がありました 。

最初の問題 (適切なドライバーが見つからない) は、不適切な jdbc リソースの作成が原因で発生しました。「新しいファイル \ グラスフィッシュ \ jdbc リソース」の代わりに「新しいファイル \ グラスフィッシュ \ jdbc 接続プール」を使用しました。

このステップをやり直すと、ドライバーが正しく登録され、プールが作成されました (mysql ドライバーがサーバーインスタンスに登録したことが Glassfish サーバーログに示されました)。

その後、testDataSource.jsp 経由でデータを取得できませんでした - エラーは org.apache.derby.client.am.SqlException: Table/View 'CATEGORY' does not exist でした。

org.apache.derby.client が言及された理由がわかりませんでした。いくつかのルックアップの後、netbeans フォーラムで議論が見つかりました: https://forums.netbeans.org/ntopic61746.html

議論のこの部分は私の場合の解決策でした:

ステップ セットアップ ファイル sun-resources.xml または glassfish-resources.xml で変更を試みます ステップ 6 で JDBC データ ソースと接続プールを設定する -> リソース タイプを javax.sql.ConnectionPoolDataSource に変更します

ステップ設定ファイル web.xml で変更 ステップ 4 でアプリケーションからデータ ソースを参照 -> リソース タイプを javax.sql.ConnectionPoolDataSource に変更

ps私はnetbeans 8.0.2、glassfish 4.1、およびjdk1.7.0_21を使用しています。javax.sql.ConnectionPoolDataSourceNetbeans のインターフェースには、web.xml の「リソース参照 \ リソース タイプの編集」コンボボックスのオプションがありませんでした。だから私はこの値を手動でそこに入れました。

于 2015-02-20T06:31:24.183 に答える
1

サーバー tomcat、wildfly、および Jboss をチェックした非常に面倒な調査の後、どれも機能していないようでした。新しいデータソースを Glassfish に登録する際に問題がありました。新しい jdbc 接続プールを追加すると、java.lang.runtimeexception がスローされます。この問題の回避策は、管理コンソールの jdbcconnection プールの下で DerbyPool を再構成し、必要なデータソース クラス名、URL、ユーザー名、およびパスワードを入力して、mysql サーバー上のデータベースを指すようにします。

于 2016-09-22T03:47:10.627 に答える
0

私はまさに問題を抱えており、Netbeans IDEを介しても、DB接続テストは問題ありませんが、Glassfish 4では機能していません。プロジェクトにlibを含めるなど、可能な限りすべてを試してください。最後に、Glassfish を削除して Glassfish 3.1.2.2 をインストールすることで問題が解決しました。プロジェクト ファイルはまったく同じで、正常に動作しています。これはバグか、Glassfish 4 で必要な特別な設定だと思います。

于 2013-08-16T12:16:23.677 に答える
0

Mysql JDBC Driverプロジェクト ライブラリに追加していないと思います。

プロジェクト ライブラリに手動Mysql JDBC Driverで追加して、もう一度お試しください。

うまくいくと思います。

于 2013-06-29T10:12:21.947 に答える
0

同じ問題がありました。過去4時間、解決策を探していましたが、とても簡単でした...

JDBC リソース (Glassfish 管理コンソール) の「ステータス」が有効になっている (チェックボックスがオンになっている) ことを確認してください:-(

于 2016-08-03T00:54:10.700 に答える
0

ここでも同じ問題。私はこれに何時間も費やし、ここで提供されている解決策のいくつかを試しましたが、さらに一歩進んだのは 1 つだけでした: リソースの種類を "javax.sql.ConnectionPoolDataSource" から "javax.sql.DataSource" に変更しました。すぐに次の問題に遭遇しました。 : テーブル「カテゴリ」は存在しませんでした. 実際には存在します. 私はグラスフィッシュをあきらめ (グラスフィッシュを使おうとしたのはこれが初めてでした)、Tomcat に戻りました. 成功! Tomcat ソリューションに興味がある方は、このページhttp://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Exampleにアクセスしてください。例による非常に明確な説明.JSTLライブラリをプロジェクトに追加することを忘れないでください.

于 2016-12-01T15:54:05.270 に答える