0

我有@EnableTask运行良好的弹簧启动应用程序。

我有一个使用 hsql 数据库作为测试用例一部分的测试用例失败并出现以下错误。

java.lang.IllegalStateException: Failed to load ApplicationContext

        at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
        at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
        at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
        at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(
        ......
        at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
    Caused by: org.springframework.context.ApplicationContextException: Failed to start bean 'taskLifecycleListener'; nested exception is org.springframework.dao.DataAccessResourceFailureException: Could not increment identity; nested exception is java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: TASK_SEQ
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
        at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:50)
        ......
        at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120)
        at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
        at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
        ... 25 more
    Caused by: org.springframework.dao.DataAccessResourceFailureException: Could not increment identity; nested exception is java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: TASK_SEQ
  .......
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:175)
        ... 37 more
    Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: TASK_SEQ
        at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
        at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
        at com.sun.proxy.$Proxy60.executeUpdate(Unknown Source)
        at org.springframework.jdbc.support.incrementer.AbstractIdentityColumnMaxValueIncrementer.getNextKey(AbstractIdentityColumnMaxValueIncrementer.java:98)
        ... 44 more
    Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: TASK_SEQ
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.ParserDQL.readTableName(Unknown Source)
        at org.hsqldb.ParserDQL.readRangeVariableForDataChange(Unknown Source)
        at org.hsqldb.ParserDML.compileInsertStatement(Unknown Source)
        at org.hsqldb.ParserCommand.compilePart(Unknown Source)
        at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
        at org.hsqldb.Session.executeDirectStatement(Unknown Source)
        at org.hsqldb.Session.execute(Unknown Source)
        ... 53 more

有人可以告诉我出了什么问题吗?我也试过 spring.cloud.task.close_context_enable=false 但没有运气。

4

1 回答 1

0

Spring Cloud Task 正在尝试创建 Task Repository 架构,但没有这样做的权限。如果不想初始化任务架构,可以设置属性spring.cloud.task.initialize.enable=false

于 2018-03-07T03:52:22.610 回答