1

データベースにアクセスするためにjarファイル(lib)を使用するWebアプリケーションがあります。jar ファイルをスタンドアロン アプリケーションとして使用すると正しく実行されますが、webapp は次のエラーを受け取りました。

[01-08-12 13:17:05] - 35266 WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 08001

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/myapp

同様の質問への回答を読みましたが、どれも私の問題を解決しません。

私が使用している mysql バージョン 5.1.21 の依存関係を追加した Maven を使用しています。実際、Lib と Webapp の両方に追加しました。

その前に、Web アプリケーションの Eclipse プロジェクトの WEB-INF/lib にコピーした同じファイルにバインドされた接続ドライバー定義を Eclipse で定義しようとしました。ファイル

私はpersistence.xmlファイルですべての構成を行うため、構成にjavaを使用していません(アプリ(lib)用とwebapp用の両方のMETA-INFフォルダーにコピーしました。私は使用していますJPA を使用して休止状態 (4.1.2) にします。

persistence.xml ファイルは次のようになります。

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">

<persistence-unit name="myappPersistenceUnit"
    transaction-type="RESOURCE_LOCAL">
    <provider> org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/myapp" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="" />
    </properties>
</persistence-unit> 

</persistence>

私が取得する例外は、アプリへのHTTPリクエストを起動するときの実行時であり、エラーは見られませんが、この警告が表示されるwebappの初期化時ではありません。

[01-08-12 13:16:39] - 8782 警告 org.hibernate.engine.jdbc.internal.JdbcServicesImpl - HHH000342: クエリ メタデータへの接続を取得できませんでした: jdbc:mysql://localhost に適したドライバーが見つかりません: 3306/マイアプリ

これは、初期化時にデータベースから検索される情報が必要ないためであり、例外はスローされませんが、どちらの場合も根本的な原因は同じであるためだと思います。

編集:Tomcat 6.0を使用しています

どんな助けでも大歓迎です。

4

5 に答える 5

1

独自のコードで mysql コネクタ jar を配置し、jar ファイルをプロジェクトに追加する必要があります。

于 2012-08-01T13:00:43.543 に答える
1

アプリケーションを Java アプリケーションとして実行している場合は、Eclipse の Java ビルド パスに JAR ファイルを追加します。

または、Web プロジェクトのフォルダー内に MSQL jar を配置するのWEB-INF/libではなく、アプリケーション サーバーがドライバーをロードし、アプリケーション サーバー コンテナーからアクセスできるアプリケーション フォルダー ライブラリ フォルダーに配置します。

于 2012-08-01T11:42:25.110 に答える
0

私も少し前に同じ問題を抱えていましたが、その問題を解決しました。この例外にはさまざまな理由が考えられます。

それらの1つは、フォルダーjarに追加しているが古い可能性があることです。最新の mysql-connector-jar バージョンlibを見つけて、それを. それはあなたの問題を解決するかもしれません。classpath

于 2013-01-10T07:15:22.927 に答える