Не создавать таблицы с Java EE 8

Я пытаюсь перенести свое приложение (военный файл) с WildFly на Open Liberty.

При запуске WildFly считывался persistence.xml, и таблицы создавались автоматически со свойством <property name = "hibernate.hbm2ddl.auto" value = "create"/>, определенным в persistence.xml.

постоянство.xml:

<?xml version = "1.0" encoding = "UTF-8"?>
<persistence xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
             version = "2.1"
             xmlns = "http://xmlns.jcp.org/xml/ns/persistence"
             xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name = "my-pu">
        <jta-data-source>jdbc/myDB</jta-data-source>
        <properties>
            <property name = "hibernate.hbm2ddl.auto" value = "create"/>
            <property name = "hibernate.dialect"
                      value = "org.hibernate.dialect.MySQL5Dialect"/>
            <property name = "hibernate.show_sql" value = "true"/>
            <property name = "hibernate.hbm2ddl.import_files"
                      value = "data.sql"/>

            <property name = "hibernate.hbm2ddl.charset_name" value = "UTF-8"/>
        </properties>
    </persistence-unit>
</persistence>

С другой стороны, с Open Liberty ничего не происходит. Я получаю сообщение об ошибке, если <jta-data-source>jdbc/myDB</jta-data-source> неправильно определен в server.xml, поэтому файл persistence.xml каким-то образом был прочитан. Вот и все. Даже если я включу hibernate.show_sql, просто нет вывода, который бы хоть как-то помог.

Это журнал одного запуска:

product = Open Liberty 19.0.0.4 (wlp-1.0.27.cl190420190419-0642)
wlp.install.dir = C:/openliberty-19.0.0.4/wlp/
java.home = C:\Program Files\Java\jdk1.8.0_201\jre
java.version = 1.8.0_201
java.runtime = Java(TM) SE Runtime Environment (1.8.0_201-b09)
os = Windows 10 (10.0; amd64) (de_DE)
process = 11584@DESKTOP-HIB1MRJ
********************************************************************************
[14.05.19 14:05:48:173 MESZ] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           A CWWKE0001I: Der Server defaultServer wurde gestartet.
[14.05.19 14:05:49:354 MESZ] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           I CWWKE0002I: Der Kernel wurde nach  1,379 Sekunden gestartet.
[14.05.19 14:05:49:423 MESZ] 0000001f com.ibm.ws.kernel.feature.internal.FeatureManager            I CWWKF0007I: Die Featureaktualisierung wurde gestartet.
[14.05.19 14:05:49:608 MESZ] 00000017 com.ibm.ws.security.ready.internal.SecurityReadyServiceImpl  I CWWKS0007I: Der Sicherheitsservice wird gestartet...
[14.05.19 14:05:49:955 MESZ] 00000017 com.ibm.ws.app.manager.internal.monitor.DropinMonitor        A CWWKZ0058I: dropins auf Anwendungen überwachen.
[14.05.19 14:05:50:383 MESZ] 00000017 ibm.ws.security.authentication.internal.jaas.JAASServiceImpl I CWWKS1123I: Das Verbundauthentifizierungs-Plug-in mit dem Klassennamen NullCollectiveAuthenticationPlugin wurde aktiviert. 
[14.05.19 14:05:50:393 MESZ] 00000025 com.ibm.ws.security.token.ltpa.internal.LTPAKeyCreateTask    I CWWKS4105I: Die LTPA-Konfiguration ist nach 0,038 Sekunden bereit.
[14.05.19 14:05:50:434 MESZ] 00000019 com.ibm.ws.ssl.config.WSKeyStore                             E CWPKI0033E: Der Keystore in C:/openliberty-19.0.0.4/wlp/usr/servers/defaultServer/resources/security/key.p12 konnte wegen des folgenden Fehlers nicht geladen werden: keystore password was incorrect
[14.05.19 14:05:50:437 MESZ] 00000019 com.ibm.ws.ssl.config.WSKeyStore                             W CWPKI0809W: Beim Laden des Keystores defaultKeyStore ist ein Fehler aufgetreten. Wenn eine SSL-Konfiguration den defaultKeyStore-Keystore referenziert, schlägt die Initialisierung der SSL-Konfiguration fehl. 
[14.05.19 14:05:50:642 MESZ] 00000028 com.ibm.ws.tcpchannel.internal.TCPChannel                    I CWWKO0219I: Der TCP-Kanal defaultHttpEndpoint wurde gestartet und ist jetzt für Anforderungen auf dem Host 127.0.0.1  (IPv4: 127.0.0.1) an Port 9080 empfangsbereit.
[14.05.19 14:05:50:719 MESZ] 00000017 com.ibm.ws.security.jaspi.AuthConfigFactoryWrapper           I CWWKS1655I: Die JASPIC-Standard-AuthConfigFactory-Klasse com.ibm.ws.security.jaspi.ProviderRegistry wird verwendet, weil die Java-Sicherheitseigenschaft authconfigprovider.factory nicht gesetzt ist. 
[14.05.19 14:05:51:142 MESZ] 00000017 com.ibm.ws.tcpchannel.internal.TCPChannel                    I CWWKO0219I: Der TCP-Kanal wasJmsEndpoint456 wurde gestartet und ist jetzt für Anforderungen auf dem Host 127.0.0.1  (IPv4: 127.0.0.1) an Port 7276 empfangsbereit.
[14.05.19 14:05:51:885 MESZ] 00000017 com.ibm.ws.sib.utils.ras.SibMessage                          I  CWSID0108I: Der JMS-Server wurde gestartet. 
[14.05.19 14:05:52:328 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf.cxf.core.3.2 (196) [org.apache.cxf.phase.PhaseManager, org.apache.cxf.workqueue.WorkQueueManager, org.apache.cxf.buslifecycle.BusLifeCycleManager, org.apache.cxf.endpoint.ServerRegistry, org.apache.cxf.endpoint.EndpointResolverRegistry, org.apache.cxf.headers.HeaderManager, org.apache.cxf.service.factory.FactoryBeanListenerManager, org.apache.cxf.endpoint.ServerLifeCycleManager, org.apache.cxf.endpoint.ClientLifeCycleManager, org.apache.cxf.resource.ResourceManager, org.apache.cxf.catalog.OASISCatalogManager, org.apache.cxf.transport.http.HTTPTransportFactory, org.apache.cxf.transport.http.HTTPWSDLExtensionLoader, org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder, org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder, org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider, org.apache.cxf.transport.http.HTTPConduitFactory, org.apache.cxf.transport.ConduitInitiator]
[14.05.19 14:05:52:338 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf-rt-ws-addr.2.6.2 (260) [org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder, org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder, org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider, org.apache.cxf.ws.addressing.impl.AddressingWSDLExtensionLoader, org.apache.cxf.ws.addressing.WSAddressingFeature$WSAddressingFeatureApplier, org.apache.cxf.ws.addressing.MAPAggregator$MAPAggregatorLoader]
[14.05.19 14:05:52:339 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf-rt-frontend-jaxws.2.6.2 (262) [org.apache.cxf.jaxws.context.WebServiceContextResourceResolver]
[14.05.19 14:05:52:340 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf-rt-management.2.6.2 (269) [org.apache.cxf.management.InstrumentationManager]
[14.05.19 14:05:52:340 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf-rt-bindings-xml.2.6.2 (271) [org.apache.cxf.binding.xml.XMLBindingFactory, org.apache.cxf.binding.xml.wsdl11.XMLWSDLExtensionLoader]
[14.05.19 14:05:52:341 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf-rt-transports-http.2.6.2 (272) [org.apache.cxf.transport.http.HTTPTransportFactory, org.apache.cxf.transport.http.HTTPWSDLExtensionLoader, org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder, org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder, org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider]
[14.05.19 14:05:52:341 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf-rt-bindings-soap.2.6.2 (273) [org.apache.cxf.binding.soap.SoapBindingFactory, org.apache.cxf.binding.soap.SoapTransportFactory]
[14.05.19 14:05:52:342 MESZ] 00000017 org.apache.cxf.bus.osgi.CXFActivator                         I Adding the extensions from bundle com.ibm.ws.org.apache.cxf-rt-ws-policy.2.6.2 (276) [org.apache.cxf.ws.policy.PolicyEngine, org.apache.cxf.policy.PolicyDataEngine, org.apache.cxf.ws.policy.AssertionBuilderRegistry, org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry, org.apache.cxf.ws.policy.PolicyBuilder, org.apache.cxf.ws.policy.PolicyAnnotationListener, org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider, org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry, org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder, org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider, org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder, org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider]
[14.05.19 14:05:53:040 MESZ] 00000017 com.ibm.ws.cache.ServerCache                                 I DYNA1001I: Die Instanz von WebSphere Dynamic Cache mit dem Namen baseCache wurde ordnungsgemäß initialisiert.
[14.05.19 14:05:53:047 MESZ] 00000017 com.ibm.ws.cache.ServerCache                                 I DYNA1071I: Der Cacheprovider default wird verwendet.
[14.05.19 14:05:53:050 MESZ] 00000017 com.ibm.ws.cache.CacheServiceImpl                            I DYNA1056I: Dynamic Cache (Objektcache) wurde erfolgreich initialisiert.
[14.05.19 14:05:53:936 MESZ] 00000027 com.ibm.ws.config.xml.internal.ConfigRefresher               A CWWKG0016I: Die Aktualisierung der Serverkonfiguration wird gestartet.
[14.05.19 14:05:53:958 MESZ] 00000027 com.ibm.ws.config.xml.internal.ConfigRefresher               A CWWKG0018I: Die Serverkonfiguration wurde nicht aktualisiert. Es wurden keine funktionalen Änderungen erkannt.
[14.05.19 14:05:54:083 MESZ] 00000043 com.ibm.ws.app.manager.AppMessageHelper                      I CWWKZ0018I: Die Anwendung backend wird gestartet.
[14.05.19 14:05:54:767 MESZ] 0000003e com.ibm.ws.session.WASSessionCore                            I SESN8501I: Der Sitzungsmanager konnte keine persistente Speicherposition finden. HttpSession-Objekte werden im lokalen Anwendungsserverspeicher gespeichert.
[14.05.19 14:05:54:785 MESZ] 0000003e com.ibm.ws.webcontainer.osgi.webapp.WebGroup                 I SRVE0169I: Das Webmodul wird geladen: OpenAPIUI.
[14.05.19 14:05:54:785 MESZ] 00000031 com.ibm.ws.webcontainer.osgi.webapp.WebGroup                 I SRVE0169I: Das Webmodul wird geladen: MicroProfileOpenAPI.
[14.05.19 14:05:54:788 MESZ] 0000003e com.ibm.ws.webcontainer                                      I SRVE0250I: Das Webmodul OpenAPIUI wurde an default_host gebunden.
[14.05.19 14:05:54:789 MESZ] 00000031 com.ibm.ws.webcontainer                                      I SRVE0250I: Das Webmodul MicroProfileOpenAPI wurde an default_host gebunden.
[14.05.19 14:05:54:790 MESZ] 0000003e com.ibm.ws.http.internal.VirtualHostImpl                     A CWWKT0016I: Webanwendung verfügbar: (default_host): http://localhost:9080/openapi/ui/
[14.05.19 14:05:54:792 MESZ] 00000031 com.ibm.ws.http.internal.VirtualHostImpl                     A CWWKT0016I: Webanwendung verfügbar: (default_host): http://localhost:9080/openapi/
[14.05.19 14:05:54:861 MESZ] 00000022 com.ibm.ws.session.WASSessionCore                            I SESN0176I: Es wird ein neuer Sitzungskontext für den Anwendungsschlüssel default_host/openapi erstellt.
[14.05.19 14:05:54:862 MESZ] 00000047 com.ibm.ws.session.WASSessionCore                            I SESN0176I: Es wird ein neuer Sitzungskontext für den Anwendungsschlüssel default_host/openapi/ui erstellt.
[14.05.19 14:05:54:879 MESZ] 00000022 com.ibm.ws.util                                              I SESN0172I: Der Sitzungsmanager verwendet die SecureRandom-Java-Standardimplementierung für die Generierung von Sitzungs-IDs.
[14.05.19 14:05:54:890 MESZ] 00000047 com.ibm.ws.util                                              I SESN0172I: Der Sitzungsmanager verwendet die SecureRandom-Java-Standardimplementierung für die Generierung von Sitzungs-IDs.
[14.05.19 14:05:54:991 MESZ] 00000022 org.hibernate.validator.internal.util.Version                I HV000001: Hibernate Validator 6.0.13.Final
[14.05.19 14:05:55:045 MESZ] 00000024 com.ibm.ws.webcontainer.osgi.mbeans.PluginGenerator          I SRVE9103I: Es wurde automatisch eine Konfigurationsdatei für ein Web-Server-Plug-in für diesen Server unter C:\openliberty-19.0.0.4\wlp\usr\servers\defaultServer\logs\state\plugin-cfg.xml generiert.
[14.05.19 14:05:55:299 MESZ] 00000047 com.ibm.ws.cache.CacheServiceImpl                            I DYNA1056I: Dynamic Cache (Objektcache) wurde erfolgreich initialisiert.
[14.05.19 14:05:55:321 MESZ] 00000047 org.apache.myfaces.ee.MyFacesContainerInitializer            I Using org.apache.myfaces.ee.MyFacesContainerInitializer
[14.05.19 14:05:55:321 MESZ] 00000022 org.apache.myfaces.ee.MyFacesContainerInitializer            I Using org.apache.myfaces.ee.MyFacesContainerInitializer
[14.05.19 14:05:55:464 MESZ] 00000022 com.ibm.ws.webcontainer.servlet                              I SRVE0242I: [com.ibm.ws.microprofile.openapi] [/openapi] [OpenAPIServlet]: Initialisierung erfolgreich.

Ага, это на немецком. Я думаю, с базовым переводчиком все должно быть в порядке.

Мой server.xml выглядит следующим образом

<?xml version = "1.0" encoding = "UTF-8"?>
<server description = "new server">
  <!-- Enable features -->
  <featureManager>
    <feature>localConnector-1.0</feature>
    <feature>javaee-8.0</feature>
    <feature>mpOpenAPI-1.0</feature>
    <feature>jndi-1.0</feature>
  </featureManager>
  <library id = "MySQLLib">
    <fileset dir = "C:/openliberty-19.0.0.4/wlp/lib" includes = "mysql-connector-java-8.0.15.jar" />
  </library>
  <dataSource id = "myDS" jndiName = "jdbc/myDB" type = "javax.sql.DataSource">
    <jdbcDriver libraryRef = "MySQLLib" javax.sql.DataSource = "com.mysql.cj.jdbc.MysqlDataSource" />
    <properties user = "root" password = "" databaseName = "myDB" serverName = "localhost" portNumber = "3306" />
  </dataSource>
  <!-- To access this server from a remote client add a host attribute to the following element, e.g. host = "*" -->
  <httpEndpoint id = "defaultHttpEndpoint" httpPort = "9080" httpsPort = "9443" />
  <!-- Automatically expand WAR files and EAR files -->
  <applicationManager autoExpand = "true" />
  <applicationMonitor updateTrigger = "mbean" />
  <keyStore id = "defaultKeyStore" password = "mysecretpassword" />
  <application id = "backend" location = "C:\backend\target\backend.war" name = "backend" type = "war" context-root = "backend" />
</server>

Соединение с базой данных работает нормально, потому что я получаю сообщение об ошибке, если пытаюсь получить (не существующие) данные моих таблиц:

Caused by: java.sql.SQLSyntaxErrorException: Table 'myDB.mytable' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:970)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1020)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:476)
... 30 more

Как я могу генерировать таблицы при запуске моего локального сервера Open Liberty?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
246
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это происходит потому, что EclipseLink, а не Hibernate, является поставщиком сохраняемости JPA по умолчанию в Liberty. EclipseLink игнорирует свойства Hibernate. Если вы хотите использовать EclipseLink, вам нужно заменить специфичные для Hibernate свойства либо на стандартные, либо на Специфичные для EclipseLink.

В качестве альтернативы можно переключить поставщика сохраняемости по умолчанию или вручную указать в единице сохраняемости, <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

Спасибо за ответ. Мне было очень интересно, потому что в WildFly это работает настолько хорошо, что я был уверен, что моя конфигурация правильная. Я заменил специальные свойства спящего режима на стандартные, например: <property name = "javax.persistence.schema-generation.database.action" value = "create" />

alexander 14.05.2019 17:42

Другие вопросы по теме