Eclipselink игнорирует свойства javax.persistence.jdbc.driver и javax.persistence.jdbc.url в файле persistence.xml. - PullRequest
0 голосов
/ 21 декабря 2018

Я на самом деле в процессе обновления всех компонентов нашего приложения до последней версии.Поэтому, среди прочего, я обновляюсь с eclipselink-2.5.0 до eclipselink-2.7.3 и с Tomcat 7 до TomEE.

Моя единица настойчивости доставляет мне неприятности.Он просто игнорирует javax.persistence.jdbc.driver и javax.persistence.jdbc.url и каким-то образом обнаруживает базу данных HSQLPlatform вместо моей базы данных MySQL.

Вот мой файл persistence.xml:

<persistence
  version='2.0'
  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'>

  <persistence-unit name="DEV" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name='javax.persistence.jdbc.driver' value='com.mysql.jdbc.Driver' />      
      <property name='javax.persistence.jdbc.url' value='jdbc:mysql://xxxx.xxx.xxxx.xx.xx/xxxxx' />
      <property name='javax.persistence.jdbc.user' value='xxxxxx' />
      <property name='javax.persistence.jdbc.password' value='xxxxxx' />

      <!--  Optimization #14 - avoid auto flush cost on query execution -->
      <property name="eclipselink.persistence-context.flush-mode" value="commit" />
      <property name="eclipselink.cache.shared.default" value="false"/>

      <property name="eclipselink.logging.level" value="FINEST"/>

      <property name="eclipselink.connection-pool.default.initial" value="1" />
      <property name="eclipselink.connection-pool.node2.min" value="16"/>
      <property name="eclipselink.connection-pool.node2.max" value="16"/>
      <property name="eclipselink.connection-pool.node2.wait" value="300"/>
    </properties>
  </persistence-unit>

  ...

А вот соответствующий вывод журнала:

[EL Finest]: 2018-12-21 11:49:35.543--ServerSession(774689836)--Thread(Thread[main,5,main])--Begin deploying Persistence Unit DEV; session /file:/C:/Java Workspace Photon/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/PES/WEB-INF/classes/_DEV; state Predeployed; factoryCount 2
[EL Finest]: 2018-12-21 11:49:35.588--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.target-server; value=org.apache.openejb.jpa.integration.eclipselink.OpenEJBServerPlatform
[EL Finest]: 2018-12-21 11:49:35.588--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.logging.level; value=FINEST; translated value=FINEST
[EL Finest]: 2018-12-21 11:49:35.588--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.logging.level; value=FINEST; translated value=FINEST
[EL Finest]: 2018-12-21 11:49:35.591--ServerSession(774689836)--Thread(Thread[main,5,main])--property=javax.persistence.jdbc.user; value=xxxxxx
[EL Finest]: 2018-12-21 11:49:35.591--ServerSession(774689836)--Thread(Thread[main,5,main])--property=javax.persistence.jdbc.password; value=xxxxxx
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.default.initial; value=1
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.node2.wait; value=300
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.node2.min; value=16
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.connection-pool.node2.max; value=16
[EL Finest]: 2018-12-21 11:49:35.618--ServerSession(774689836)--Thread(Thread[main,5,main])--property=eclipselink.cache.shared.default; value=false; translated value=false
[EL Info]: 2018-12-21 11:49:35.64--ServerSession(774689836)--Thread(Thread[main,5,main])--EclipseLink, version: Eclipse Persistence Services - 2.7.3.v20180807-4be1041
[EL Finest]: 2018-12-21 11:49:35.656--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle12Platform, regular expression: (?is)oracle.*12.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle11Platform, regular expression: (?is)oracle.*11.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle10Platform, regular expression: (?is)oracle.*10.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.Oracle9Platform, regular expression: (?is)oracle.*9.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle12Platform, regular expression: (?is)core.oracle.*12.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle11Platform, regular expression: (?is)core.oracle.*11.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle10Platform, regular expression: (?is)core.oracle.*10.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Oracle9Platform, regular expression: (?is)core.oracle.*9.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.oracle.OraclePlatform, regular expression: (?is)oracle.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.SQLAnywherePlatform, regular expression: SQL\ Anywhere.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.SybasePlatform, regular expression: (?i)(sybase.*)|(adaptive\ server\ enterprise.*)|(SQL\ Server.*)
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.SQLServerPlatform, regular expression: (?i)microsoft.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.JavaDBPlatform, regular expression: (?i).*derby.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.DB2ZPlatform, regular expression: (?i).*db2.*dsn.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.DB2MainframePlatform, regular expression: (?i).*(db2|AS).*(AS/400|qsq).*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.DB2Platform, regular expression: (?i).*db2.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.PointBasePlatform, regular expression: (?is)pointbase.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.MySQLPlatform, regular expression: (?i)mysql.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.Informix11Platform, regular expression: (?i)(informix.*)|(ids.*)
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.PostgreSQLPlatform, regular expression: (?is)postgresql.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.H2Platform, regular expression: (?is)h2.*
[EL Finest]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Database platform: org.eclipse.persistence.platform.database.HSQLPlatform, regular expression: (?is)hsql.*
[EL Fine]: 2018-12-21 11:49:35.657--Thread(Thread[main,5,main])--Detected database platform: org.eclipse.persistence.platform.database.HSQLPlatform
[EL Config]: 2018-12-21 11:49:35.674--ServerSession(774689836)--Connection(1116906950)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
    platform=>DatabasePlatform
    user name=> "xxxxxx"
    connector=>JNDIConnector datasource name=>null
))
[EL Config]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(1823071136)--Thread(Thread[main,5,main])--Connected: jdbc:hsqldb:file:C:\Java Workspace Photon\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\data\hsqldb\hsqldb
    User: SA
    Database: HSQL Database Engine  Version: 2.3.2
    Driver: HSQL Database Engine Driver  Version: 2.3.2
[EL Finest]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(1785609933)--Thread(Thread[main,5,main])--Connection acquired from connection pool [read].
[EL Finest]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(1785609933)--Thread(Thread[main,5,main])--Connection released to connection pool [read].
[EL Config]: 2018-12-21 11:49:35.675--ServerSession(774689836)--Connection(8105698)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
    platform=>HSQLPlatform
    user name=> "xxxxxx"
    connector=>JNDIConnector datasource name=>null
))

Имя пользователя / пароль, указанные в журнале, верныно я не знаю, где он пытается подключиться.

Что происходит?

1 Ответ

0 голосов
/ 24 декабря 2018

Источником данных TomEE по умолчанию является HSQL DB, которая находится в оперативной памяти и доступна в TomEE.Ваша конфигурация не подходит для TomEE.поэтому TomEE использует источник данных БД HSQL по умолчанию вместо вашей БД. Вам нужно определить свойство источника данных для подключения вашей БД в TomEE.Вы можете обратиться по ссылкам ниже.

JPA persistence.xml Я хочу, чтобы он подключался к MariaDB, но он всегда подключается к hsqldb

http://tomee.apache.org/datasource-config.html

http://tomee.apache.org/configuring-datasources-in-tests.html

Надеюсь, что приведенные выше данные решат вашу проблему.

...