Java 编译成本机映像的H2数据库只能作为客户端使用

Java 编译成本机映像的H2数据库只能作为客户端使用,java,native,h2,quarkus,Java,Native,H2,Quarkus,在构建本机映像之后,我发现了以下错误 我正在文件模式下使用H2数据库。 我是否应该理解,使用文件数据库在本机模式下使用H2是不可能的 ./controller-1.0-SNAPSHOT-runner-Dquarkus.datasource.url=jdbc:h2:~/Dev/controller/sic quarkus.datasource.url=jdbc:h2:./sic quarkus.datasource.driver=org.h2.driver org.quartz.Scheduler

在构建本机映像之后,我发现了以下错误 我正在文件模式下使用H2数据库。 我是否应该理解,使用文件数据库在本机模式下使用H2是不可能的

./controller-1.0-SNAPSHOT-runner-Dquarkus.datasource.url=jdbc:h2:~/Dev/controller/sic

quarkus.datasource.url=jdbc:h2:./sic quarkus.datasource.driver=org.h2.driver

org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
        at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:473)
        at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
        at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1538)
        at org.hibernate.query.Query.getResultList(Query.java:165)
        at com.evolis.rpms.sic.controler.StatusBean.checkHostersState(StatusBean.java:100)
        at com.evolis.rpms.sic.controler.StatusBean_Subclass.checkHostersState$$superaccessor6(Unknown Source)
        at com.evolis.rpms.sic.controler.StatusBean_Subclass$$function$$12.apply(Unknown Source)
        at io.quarkus.arc.InvocationContextImpl.interceptorChainCompleted(InvocationContextImpl.java:141)
        at io.quarkus.arc.InvocationContextImpl.proceed(InvocationContextImpl.java:161)
        at io.quarkus.arc.ActivateRequestContextInterceptor.aroundInvoke(ActivateRequestContextInterceptor.java:22)
        at io.quarkus.arc.ActivateRequestContextInterceptor_Bean.intercept(Unknown Source)
        at io.quarkus.arc.InvocationContextImpl$InterceptorInvocation.invoke(InvocationContextImpl.java:254)
        at io.quarkus.arc.InvocationContextImpl.invokeNext(InvocationContextImpl.java:133)
        at io.quarkus.arc.InvocationContextImpl.proceed(InvocationContextImpl.java:157)
        at com.evolis.rpms.sic.controler.StatusBean_Subclass.checkHostersState(Unknown Source)
        at com.evolis.rpms.sic.controler.StatusBean_ClientProxy.checkHostersState(Unknown Source)
        at com.evolis.rpms.sic.controler.StatusBean_ScheduledInvoker_checkHostersState_68e943c3d502cee246226dbe51d54e7cd7502168.invoke(Unknown Source)
        at io.quarkus.scheduler.runtime.QuartzScheduler$InvokerJob.execute(QuartzScheduler.java:249)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        ... 3 more
Caused by: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
        at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
        at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
        at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
        at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:109)
        at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:136)
        at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.connection(StatementPreparerImpl.java:47)
        at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146)
        at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172)
        at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148)
        at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1988)
        at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1918)
        at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1896)
        at org.hibernate.loader.Loader.doQuery(Loader.java:936)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:339)
        at org.hibernate.loader.Loader.doList(Loader.java:2693)
        at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2540)
        at org.hibernate.loader.Loader.list(Loader.java:2502)
        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:504)
        at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)
        at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
        at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1537)
        at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1561)
        at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1529)
        ... 19 more
Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.UnsupportedOperationException: H2 database compiled into a native-image is only functional as a client: can't create an Embedded Database Session" [50000-197]
        at org.h2.message.TraceObject.logAndConvert(TraceObject.java:357)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:140)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
        at org.h2.Driver.connect(Driver.java:69)
        at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:200)
        at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:357)
        at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:346)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:64)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
        ... 2 more
Caused by: java.lang.UnsupportedOperationException: H2 database compiled into a native-image is only functional as a client: can't create an Embedded Database Session
        at org.h2.engine.ConnectionInfo.isRemote(ConnectionInfo.java:20)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:331)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
        ... 12 more
org.quartz.SchedulerException:作业引发了未处理的异常。[请参阅嵌套异常:javax.persistence.PersistenceException:org.hibernate.exception.genericjdbception:无法获取JDBC连接]
位于org.quartz.core.JobRunShell.run(JobRunShell.java:213)
位于org.quartz.siml.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
位于com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:473)
位于com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
原因:javax.persistence.PersistenceException:org.hibernate.exception.genericjdbception:无法获取JDBC连接
位于org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
位于org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1538)
位于org.hibernate.query.query.getResultList(query.java:165)
在com.evolis.rpms.sic.controler.StatusBean.CheckHosterState(StatusBean.java:100)上
位于com.evolis.rpms.sic.controler.StatusBean_Subclass.checkHosterState$$superaccessor6(未知源)
在com.evolis.rpms.sic.controler.StatusBean\u子类$$function$$12.apply(未知源)
在io.quarkus.arc.InvocationContextImpl.interceptorChainCompleted(InvocationContextImpl.java:141)上
在io.quarkus.arc.InvocationContextImpl.procedure(InvocationContextImpl.java:161)
在io.quarkus.arc.ActivateRequestContextInterceptor.aroundInvoke(ActivateRequestContextInterceptor.java:22)
在io.quarkus.arc.ActivateRequestContextInterceptor_Bean.intercept(未知源)
在io.quarkus.arc.InvocationContextImpl$InterceptorInvocation.invoke(InvocationContextImpl.java:254)
在io.quarkus.arc.InvocationContextImpl.invokeNext(InvocationContextImpl.java:133)
在io.quarkus.arc.InvocationContextImpl.procedure(InvocationContextImpl.java:157)
在com.evolis.rpms.sic.controler.StatusBean_Subclass.checkHostersState(未知源)
位于com.evolis.rpms.sic.controler.StatusBean\u ClientProxy.checkHosterState(未知源)
在com.evolis.rpms.sic.controller.StatusBean_ScheduledInvoker_checkHosterState_68E943C3D502CEE46226DBE51D54E7CD7502168.invoke(未知源)
在io.quarkus.scheduler.runtime.QuartzScheduler$InvokerJob.execute(QuartzScheduler.java:249)
位于org.quartz.core.JobRunShell.run(JobRunShell.java:202)
... 3个以上
原因:org.hibernate.exception.genericjdbception:无法获取JDBC连接
位于org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
位于org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
位于org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
位于org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.AcquireConnectionInneed(LogicalConnectionManagedImpl.java:109)
位于org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:136)
位于org.hibernate.engine.jdbc.internal.StatementPrepareImpl.connection(statementPrepareImpl.java:47)
位于org.hibernate.engine.jdbc.internal.StatementPrepareImpl$5.doPrepare(statementPrepareImpl.java:146)
位于org.hibernate.engine.jdbc.internal.StatementPrepareImpl$StatementPreparationTemplate.prepareStatement(statementPrepareImpl.java:172)
位于org.hibernate.engine.jdbc.internal.statementPrepareImpl.prepareQueryStatement(statementPrepareImpl.java:148)
位于org.hibernate.loader.loader.prepareQueryStatement(loader.java:1988)
位于org.hibernate.loader.loader.executeQueryStatement(loader.java:1918)
位于org.hibernate.loader.loader.executeQueryStatement(loader.java:1896)
位于org.hibernate.loader.loader.doQuery(loader.java:936)
在org.hibernate.loader.loader.doQueryAndInitializeNonLazyCollections(loader.java:339)上
位于org.hibernate.loader.loader.doList(loader.java:2693)
位于org.hibernate.loader.loader.listUsingQueryCache(loader.java:2540)
位于org.hibernate.loader.loader.list(loader.java:2502)
位于org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:504)
位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)
位于org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
位于org.hibernate.internal.SessionImpl.list(SessionImpl.java:1537)
位于org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1561)
位于org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1529)
... 还有19个
导致原因:org.h2.jdbc.JdbcSQLException:一般错误:“java.lang.UnsupportedOperationException:编译为本机映像的h2数据库仅作为客户端运行:无法创建嵌入式数据库会话”[50000-197]
位于org.h2.message.TraceObject.logAndConvert(TraceObject.java:357)
JdbcConnection(JdbcConnection.java:140)
JdbcConnection(JdbcConnection.java:103)
位于org.h2.Driver.connect(Driver.java:69)
位于io.agrol.pool.ConnectionFactory.createConnection(ConnectionFactory.java:200)
在io.agrol.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:357)
在io.agrol.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:346)