Не генерирует таблицы с Java EE 8 - PullRequest
0 голосов
/ 14 мая 2019

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

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

persistence.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?

1 Ответ

1 голос
/ 14 мая 2019

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

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

...