JAVA SE7とEcliplseLinkで、mySQLにアクセスしようとしています。
Persistence.xmlにDB接続情報(DBサーバーのIP,ポート,ユーザー名,パスワード)を持たせていた時には正常に動作していました。
接続情報は外部ファイルに持つのが望ましいとの要望が有りましたので、
persistence.xmlのDB接続に関係する部分をdatasource.propertiesというファイル移動した所、
[EL Info]: 2017-05-10 16:18:07.712--ServerSession(1156833285)--EclipseLink, version: Eclipse Persistence Services - 2.6.4.v20160829-44060b6
[EL Severe]: ejb: 2017-05-10 16:18:07.72--ServerSession(1156833285)--Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.6.4.v20160829-44060b6): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error. Class ["com.mysql.jdbc.Driver"] not found.
というエラーが発生するようになりました。
エラー発生箇所のコードは下記の通りです
static EntityTransaction et = null;
static EntityManagerFactory emf;
static EntityManager em;
Properties props = new Properties();
try {
props.load(new FileInputStream("./lib/datasource.properties"));
emf = Persistence.createEntityManagerFactory("myModelClass", props);
em = emf.createEntityManager();
} catch (IOException e) {
e.printStackTrace();
}
datasource.propertiesの内容は下記の通り
javax.persistence.jdbc.driver="com.mysql.jdbc.Driver"
javax.persistence.jdbc.url="jdbc:mysql://192.168.xx.xx:3306/mydb?tinyInt1isBit=false&characterEncoding=UTF-8"
javax.persistence.jdbc.user="myuser"
javax.persistence.jdbc.password="mypass"
javax.persistence.schema-generation.scripts.action="none"
デバッガ上で、datasource.propertiesの内容が変数propsに反映されるのは確認しています。
また、
mysql-connector-java-5.1.41.jarは
プロジェクト内のlibというフォルダに有り、ビルドパスも設定してあります。
mysql-connector-javaの読込が出来ていない事を疑い、
確認の意味で
String msg = "";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
msg = "ドライバのロードに成功しました";
} catch (Exception e){
msg = "ドライバのロードに失敗しました";
}
System.out.println(msg);
というコードを入れてみた所、
「ドライバのロードに成功しました」が表示されます。
尚、
本件は、webアプリでは無いため、tomcat等は使っておりません。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/06 06:59
2017/06/06 07:44