私はMySQLデータベース用にダービーデータベースを交換しています。以前はすべてが機能していましたが、適切な構成だと思った後にエラーが発生しています:
原因:javax.resource.ResourceException:クラス名が間違っているか、クラスパスが設定されていない:com.mysql.jdbc.jdbc2.optional.MysqlDataSource
コンソールからの完全なエラー出力:
Caused by: javax.resource.ResourceException: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource
at com.Sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.Java:292)
at com.Sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.Java:114)
at com.Sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.Java:1292)
at com.Sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.Java:148)
at com.Sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.Java:101)
at com.Sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.Java:87)
いくつかの名前、接続プール、その他のリソースを再確認しました。また、両方のプロジェクトで、GlassfishのライブラリにMySQLドライバー.jarを追加しました。 Eclipseのデータベースコンテキスト内でテーブルを表示し、リソースを表示することができたため、データベースはEclipseを介して確実に正しく機能していました。したがって、少なくともこれらのドライバーが正しく動作していることを知っています。 persistence.xmlファイルも見た目が良いです。 jdbc/mydatabase jndi参照を参照する必要があり、デフォルトのJTAが管理タイプとして選択されます。
誰か別の提案がありますか?ありがとうございました
MySQLドライバー.jarsも両方のプロジェクトのglassfishのライブラリに追加しました。
それは明らかに正しく行われなかった。 JARは/glassfish/domains/[domainname]/lib/ext
Glassfishインストールのフォルダ[domainname]
通常、デフォルトはdomain1
。 Eclipse側から構成することはできますが、すべきではありません。
私は非常に遅れて返信しているように見えますが、このスレッドを参照する人は次の情報が役に立つかもしれません。だから私はここに投稿しています:
行くぞMySqlが実行されている場合、DBに正常にpingを送信します
Jarファイルを$glassfish_install_folder\glassfish\lib
にコピーした後、動作しました。私はglassfish 4.0を使用します。
これを確認してください link Oracleから。
2018年にこの問題が発生しましたが、glassfish 4(現在は5)を使用している場合は、Connector/J 5.1.47バージョンを使用する必要があるようです。現在のバージョン(Connector/J 8.0.13)を使用している場合、.jarファイルをどこに配置しても、元の質問で述べた例外が表示され続けます。
Connector/J 5.1.47では、完全に機能します。