0

问题描述

我正在将一个项目从 Wildfly 8.2.1.Final 迁移到更新的版本。主要目标是将 Hibernate 5 与 Java 8+ 一起使用,并在与 java 11 兼容的 Wildfly 版本上运行,以便以后迁移(因此问题出现在 java 8 上)。

我们选择了 Wildfly 24.0.1.Final (Hibernate 5.3.20.Final),因为它是 jboss-migration-tool 帮助迁移standalone.xml 的最后一个版本(WF 25 删除了对遗留内容的支持,所以这将是手动迁移步骤)。

我们正在使用 Mariadb 10,最新版本的 Mysql 连接器 8。与 MySQL 连接器版本 5 或 mariadb jdbc 驱动程序相同的问题。

迁移非 XA 数据源(XA 数据源正常工作)时会出现此问题。在 EAR 部署后,Wildfly 在映射每个实体(请参阅日志)时一直警告我“未选择数据库”,然后在查询数据库时返回错误。

  • 正如其他人所建议的那样,我检查了 connection-url 是否以正确的模式名称结尾。
  • 测试与数据库的连接是可以的。
  • 将数据源指定为 XA 时,它可以正常工作(请参阅standalone.xml 的摘录)
  • 在 wildfly 8 上,XA 和非 XA 数据源都正常运行。
  • 我尝试使用休眠属性 hibernate.default_schema 再次指定默认模式(voting_db);我现在得到了 XA 和非 XA 数据源的错误,所以这似乎不是一个好主意(但是错误是不同的)。
  • 我尝试降级到 2.0 版本的 persistence.XML

Wildfly 启动后,我收到以下警告:

WARN  [org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer] IJ020020: Connection Properties for DataSource: 'java:jboss/datasources/votingDS' is empty, try to use driver-class: 'com.mysql.cj.jdbc.Driver' and connection-url: 'jdbc:mysql://localhost:3306/voting_db' to connect database

因此,我在通过 Wildfly 管理界面添加的数据源上检查了standalone.xml 语法,没有发现任何错误。下一条日志消息是通知数据源已正确绑定。不过,提示有问题吗?

我错过了什么?我已经尝试了几天,在网上搜索..

Standalone.xml 中的非 XA 数据源规范(简化)

这是产生错误的规范

<subsystem xmlns="urn:jboss:domain:datasources:6.0">
     <datasources>
         <datasource jndi-name="java:jboss/datasources/votingDS" pool-name="votingDS" enabled="true" use-java-context="true" use-ccm="false">
               <connection-url>jdbc:mysql://localhost:3306/voting_db</connection-url>
               <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
               <driver>mysql</driver>
               <security>
                     <user-name>user</user-name>
                     <password>passwd</password>
               </security>
               <validation>
                 <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                 <validate-on-match>false</validate-on-match>
                 <background-validation>true</background-validation>
                 <background-validation-millis>600000</background-validation-millis>
                 <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
              </validation>
          </datasource>
          <drivers>
             <driver name="mysql" module="com.mysql">
             <datasource-class>com.mysql.cj.jdbc.MysqlDataSource</datasource-class>
                        </driver>
          </drivers>
      </datasources>
 </subsystem>

Standalone.xml 中的 XA 数据源规范(简化)

这是正常工作的规范。

 <subsystem xmlns="urn:jboss:domain:datasources:6.0">
          <datasources>
              <xa-datasource jndi-name="java:jboss/datasources/votingDS" pool-name="votingDS" enabled="true" use-ccm="true">
                    <xa-datasource-property name="ServerName">
                        localhost
                    </xa-datasource-property>
                    <xa-datasource-property name="Port">
                        3306
                    </xa-datasource-property>
                    <xa-datasource-property name="DatabaseName">
                        voting_db
                    </xa-datasource-property>
                    <driver>mysql</driver>
                    <security>
                        <user-name>user</user-name>
                        <password>password</password>
                    </security>
                    <validation>
                        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>true</background-validation>
                        <background-validation-millis>600000</background-validation-millis>
                        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                    </validation>
            </xa-datasource>
            <drivers>
                    <driver name="mysql" module="com.mysql">
                        <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
                        <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
                    </driver>
            </drivers>
      </datasources>
</subsystem>

简化的persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence  
                        http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
                 version="2.2">
    <persistence-unit name="votingDS" transaction-type="JTA">
        <jta-data-source>java:jboss/datasources/votingDS</jta-data-source>

        <properties>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
</persistence>

日志

以下是日志的摘录。这向我提出了几个问题:

  • 默认情况下是否启用二级缓存?还是因为某些实体被标记为 @cacheable 而被激活?
  • hibernate.properties 文件有多重要?

EAR 部署时

INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 4) WFLYJPA0010: Starting Persistence Unit (phase 1 of 2) Service 'test.war#votingDS'
        INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-3) HV000001: Hibernate Validator 6.0.22.Final
        INFO  [org.hibernate.jpa.internal.util.LogHelper] (ServerService Thread Pool -- 4) HHH000204: Processing PersistenceUnitInfo [
            name: votingDS
            ...]
        INFO  [org.hibernate.Version] (ServerService Thread Pool -- 4) HHH000412: Hibernate Core {5.3.20.Final}
        INFO  [org.hibernate.cfg.Environment] (ServerService Thread Pool -- 4) HHH000206: hibernate.properties not found
    ...... Instantiating Beans ..
        INFO  [org.hibernate.annotations.common.Version] (ServerService Thread Pool -- 4) HCANN000001: Hibernate Commons Annotations {5.0.5.Final}
        INFO  [io.jaegertracing.internal.JaegerTracer] (MSC service thread 1-3) No shutdown hook registered: Please call close() manually on application shutdown.
        INFO  [org.wildfly.microprofile.opentracing.smallrye] (MSC service thread 1-3) WFLYTRAC0001: Tracer initialized: JaegerTracer(version=Java-1.5.0, serviceName=test.war, reporter=RemoteReporter(sender=org.wildfly.extension.microprofile.opentracing.spi.sender.WildFlySender@6a47cad, closeEnqueueTimeout=1000), sampler=ConstSampler(decision=true, tags={sampler.type=const, sampler.param=true}), tags={hostname=DESKTOP-BR3QQMA, jaeger.version=Java-1.5.0, ip=10.10.0.26}, zipkinSharedRpcSpan=false, expandExceptionLogs=false, useTraceId128Bit=false)
       ...
        INFO  [org.jipijapa] (MSC service thread 1-8) JIPIORMV53020253: Second level cache enabled for test.war#votingDS
        INFO  [org.jboss.weld.Version] (MSC service thread 1-8) WELD-000900: 3.1.7 (SP1)
        INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 4) WFLYJPA0010: Starting Persistence Unit (phase 2 of 2) Service 'test.war#votingDS'
        WARN  [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (ServerService Thread Pool -- 4) IJ000407: No lazy enlistment available for votingDS
        INFO  [org.hibernate.dialect.Dialect] (ServerService Thread Pool -- 4) HHH000400: Using dialect: org.hibernate.dialect.MySQL55Dialect
...
        INFO  [org.infinispan.CONTAINER] (ServerService Thread Pool -- 4) ISPN000556: Starting user marshaller 'org.wildfly.clustering.infinispan.marshalling.jboss.JBossMarshaller'
        INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 4) WFLYCLINF0002: Started test.war#votingDS.vbkApplicationServer.ejb.model.campaigns.Waves cache from hibernate container
        INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 4) WFLYCLINF0002: Started test.war#votingDS.vbkApplicationServer.ejb.model.campaigns.Waves-pending-puts cache from hibernate container
        
        WARN  [org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl] (ServerService Thread Pool -- 4) GenerationTarget encountered exception accepting command : Error executing DDL "create table myEntityTabe (...) engine=InnoDB" via JDBC Statement: org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table myEntityTable(.....) engine=InnoDB" via JDBC Statement
            at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.createTable(AbstractSchemaMigrator.java:277) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:71) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1250) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            at org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44)
            at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:170) [wildfly-jpa-24.0.1.Final.jar:24.0.1.Final]
            at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:128) [wildfly-jpa-24.0.1.Final.jar:24.0.1.Final]
            at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_171]
            at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:664) [wildfly-elytron-security-manager-1.16.1.Final.jar:1.16.1.Final]
            at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:213) [wildfly-jpa-24.0.1.Final.jar:24.0.1.Final]
            at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
            at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
            at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
            at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
            at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_171]
            at org.jboss.threads.JBossThread.run(JBossThread.java:513)
        Caused by: java.sql.SQLException: No database selected
            at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
            at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
            at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:763)
            at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:648)
            at org.jboss.jca.adapters.jdbc.WrappedStatement.execute(WrappedStatement.java:198)
            at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
            ... 23 more

对每个实体重复相同的警告。

最后出现错误

WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-1) SQL Error: 1046, SQLState: 3D000
ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-1) No database selected
ERROR [org.jboss.as.ejb3.invocation] (default task-1) WFLYEJB0034: Jakarta Enterprise Beans Invocation failed on component BrandBean for method public abstract vbkApplicationServer.ejb.model.Brand vbkApplicationServer.ejb.beans.local.BrandBeanLocal.findByNameCountry(java.lang.String,java.lang.String): javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    ....
    
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:633) [wildfly-elytron-security-manager-1.16.1.Final.jar:1.16.1.Final]
    at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:57)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:191)
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:81)
    ...
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1575) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.query.Query.getResultList(Query.java:132) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at vbkApplicationServer.ejb.beans.BrandBean.findByNameCountry(BrandBean.java:478) [classes:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_171]
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
    at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:79)
    at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:89)
    at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:102)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [wildfly-ejb3-24.0.1.Final.jar:24.0.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [wildfly-jpa-24.0.1.Final.jar:24.0.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-24.0.1.Final.jar:24.0.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:40)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) [wildfly-ejb3-24.0.1.Final.jar:24.0.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54) [wildfly-ejb3-24.0.1.Final.jar:24.0.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:254) [wildfly-ejb3-24.0.1.Final.jar:24.0.1.Final]
    ... 267 more
Caused by: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:69) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2265) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2028) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1990) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.doQuery(Loader.java:949) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:351) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2787) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2770) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2604) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.Loader.list(Loader.java:2599) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:505) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:395) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:220) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1526) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1598) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1566) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    ... 297 more
Caused by: java.sql.SQLException: No database selected
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1009)
    at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
    ... 312 more
4

1 回答 1

0

我在 https://developer.jboss.org/thread/279971中找到了解决方案

在standalone.xml 中,(非xa)条目必须同时包含一个'connection-url' 条目和一个'connection-property name="url"' 条目。

这是工作的非 xa 数据源规范

<datasource jndi-name="java:jboss/datasources/votingDS" pool-name="votingDS" enabled="true" use-java-context="true" use-ccm="false">
    <connection-url>jdbc:mysql://localhost:3306/voting_db</connection-url>
    <connection-property name="url">
                        jdbc:mysql://localhost:3306/voting_db
    </connection-property>
    <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
    <driver>mysql</driver>
     <security>
           <user-name>user</user-name>
           <password>passwd</password>
     </security>
    <validation>
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
        <validate-on-match>false</validate-on-match>
        <background-validation>true</background-validation>
        <background-validation-millis>600000</background-validation-millis>
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
    </validation>
</datasource>
于 2022-02-03T15:51:57.737 回答