我在grails应用程序中使用活动插件。当我尝试运行我的应用程序时,我收到此错误。表未创建。我不明白为什么。
| Error 2012-04-20 18:30:24,746 [pool-6-thread-1] ERROR interceptor.CommandContext - Error while closing command context
Message:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntity.selectProperty-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
Line | Method
->> 8 | wrapException in org.apache.ibatis.exceptions.ExceptionFactory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 77 | selectList in org.apache.ibatis.session.defaults.DefaultSqlSession
| 69 | selectList . . . . . . . . . . . . . . . in ''
| 40 | selectOne in ''
| 217 | selectById . . . . . . . . . . . . . . . in org.activiti.engine.impl.db.DbSqlSession
| 629 | dbSchemaUpdate in ''
| 885 | performSchemaOperationsProcessEngineBuild in ''
| 25 | execute in org.activiti.engine.impl.SchemaOperationsProcessEngineBuild
| 24 | execute . . . . . . . . . . . . . . . . . in org.activiti.engine.impl.interceptor.CommandExecutorImpl
| 42 | execute in org.activiti.engine.impl.interceptor.CommandContextInterceptor
| 40 | execute . . . . . . . . . . . . . . . . . in org.activiti.spring.SpringTransactionInterceptor
| 33 | execute in org.activiti.engine.impl.interceptor.LogInterceptor
| 77 | <init> . . . . . . . . . . . . . . . . . in org.activiti.engine.impl.ProcessEngineImpl
| 271 | buildProcessEngine in org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl
| 60 | buildProcessEngine . . . . . . . . . . . in org.activiti.spring.SpringProcessEngineConfiguration
| 56 | getObject in org.activiti.spring.ProcessEngineFactoryBean
| 32 | getObject . . . . . . . . . . . . . . . . in ''
| 334 | innerRun in java.util.concurrent.FutureTask$Sync
| 166 | run . . . . . . . . . . . . . . . . . . . in java.util.concurrent.FutureTask
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run . . . . . . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run in java.lang.Thread
Caused by SQLSyntaxErrorException: ORA-00942: table or view does not exist
->> 91 | newSQLException in oracle.jdbc.driver.SQLStateMapping
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 112 | newSQLException in oracle.jdbc.driver.DatabaseError
| 173 | throwSqlException . . . . . . . . . . . . in ''
| 455 | processError in oracle.jdbc.driver.T4CTTIoer
| 413 | processError . . . . . . . . . . . . . . in ''
| 1030 | receive in oracle.jdbc.driver.T4C8Oall
| 194 | doOall8 . . . . . . . . . . . . . . . . . in oracle.jdbc.driver.T4CPreparedStatement
| 785 | executeForDescribe in ''
| 860 | executeMaybeDescribe . . . . . . . . . . in ''
| 1186 | doExecuteWithTimeout in oracle.jdbc.driver.OracleStatement
| 3381 | executeInternal . . . . . . . . . . . . . in oracle.jdbc.driver.OraclePreparedStatement
| 3482 | execute in ''
| 1373 | execute . . . . . . . . . . . . . . . . . in oracle.jdbc.driver.OraclePreparedStatementWrapper
| 172 | execute in org.apache.commons.dbcp.DelegatingPreparedStatement
| 39 | query . . . . . . . . . . . . . . . . . . in org.apache.ibatis.executor.statement.PreparedStatementHandler
| 55 | query in org.apache.ibatis.executor.statement.RoutingStatementHandler
| 41 | doQuery . . . . . . . . . . . . . . . . . in org.apache.ibatis.executor.SimpleExecutor
| 216 | queryFromDatabase in org.apache.ibatis.executor.BaseExecutor
| 95 | query . . . . . . . . . . . . . . . . . . in ''
| 72 | query in org.apache.ibatis.executor.CachingExecutor
| 75 | selectList . . . . . . . . . . . . . . . in org.apache.ibatis.session.defaults.DefaultSqlSession
| 69 | selectList in ''
| 40 | selectOne . . . . . . . . . . . . . . . . in ''
| 217 | selectById in org.activiti.engine.impl.db.DbSqlSession
| 629 | dbSchemaUpdate . . . . . . . . . . . . . in ''
| 885 | performSchemaOperationsProcessEngineBuild in ''
| 25 | execute . . . . . . . . . . . . . . . . . in org.activiti.engine.impl.SchemaOperationsProcessEngineBuild
| 24 | execute in org.activiti.engine.impl.interceptor.CommandExecutorImpl
| 42 | execute . . . . . . . . . . . . . . . . . in org.activiti.engine.impl.interceptor.CommandContextInterceptor
| 40 | execute in org.activiti.spring.SpringTransactionInterceptor
| 33 | execute . . . . . . . . . . . . . . . . . in org.activiti.engine.impl.interceptor.LogInterceptor
| 77 | <init> in org.activiti.engine.impl.ProcessEngineImpl
| 271 | buildProcessEngine . . . . . . . . . . . in org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl
| 60 | buildProcessEngine in org.activiti.spring.SpringProcessEngineConfiguration
| 56 | getObject . . . . . . . . . . . . . . . . in org.activiti.spring.ProcessEngineFactoryBean
| 32 | getObject in ''
| 334 | innerRun . . . . . . . . . . . . . . . . in java.util.concurrent.FutureTask$Sync
| 166 | run in java.util.concurrent.FutureTask
| 1110 | runWorker . . . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . . . . . . . . . . . . . . . . . in java.lang.Thread
| Error 2012-04-20 18:30:24,927 [pool-6-thread-1] ERROR context.GrailsContextLoader - Error executing bootstraps: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntity.selectProperty-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
Message: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntity.selectProperty-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
Line | Method
->> 334 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 166 | run in java.util.concurrent.FutureTask
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread
Caused by PersistenceException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntity.selectProperty-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
->> 8 | wrapException in org.apache.ibatis.exceptions.ExceptionFactory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 77 | selectList in org.apache.ibatis.session.defaults.DefaultSqlSession
| 69 | selectList in ''
| 40 | selectOne in ''
| 217 | selectById in org.activiti.engine.impl.db.DbSqlSession
| 629 | dbSchemaUpdate in ''
| 885 | performSchemaOperationsProcessEngineBuild in ''
| 25 | execute in org.activiti.engine.impl.SchemaOperationsProcessEngineBuild
| 24 | execute . in org.activiti.engine.impl.interceptor.CommandExecutorImpl
| 42 | execute in org.activiti.engine.impl.interceptor.CommandContextInterceptor
| 40 | execute . in org.activiti.spring.SpringTransactionInterceptor
| 33 | execute in org.activiti.engine.impl.interceptor.LogInterceptor
| 77 | <init> . in org.activiti.engine.impl.ProcessEngineImpl
| 271 | buildProcessEngine in org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl
| 60 | buildProcessEngine in org.activiti.spring.SpringProcessEngineConfiguration
| 56 | getObject in org.activiti.spring.ProcessEngineFactoryBean
| 32 | getObject in ''
| 334 | innerRun in java.util.concurrent.FutureTask$Sync
| 166 | run . . . in java.util.concurrent.FutureTask
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run in java.lang.Thread
Caused by SQLSyntaxErrorException: ORA-00942: table or view does not exist
->> 91 | newSQLException in oracle.jdbc.driver.SQLStateMapping
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 112 | newSQLException in oracle.jdbc.driver.DatabaseError
| 173 | throwSqlException in ''
| 455 | processError in oracle.jdbc.driver.T4CTTIoer
| 413 | processError in ''
| 1030 | receive in oracle.jdbc.driver.T4C8Oall
| 194 | doOall8 . in oracle.jdbc.driver.T4CPreparedStatement
| 785 | executeForDescribe in ''
| 860 | executeMaybeDescribe in ''
| 1186 | doExecuteWithTimeout in oracle.jdbc.driver.OracleStatement
| 3381 | executeInternal in oracle.jdbc.driver.OraclePreparedStatement
| 3482 | execute in ''
| 1373 | execute . in oracle.jdbc.driver.OraclePreparedStatementWrapper
| 172 | execute in org.apache.commons.dbcp.DelegatingPreparedStatement
| 39 | query . . in org.apache.ibatis.executor.statement.PreparedStatementHandler
| 55 | query in org.apache.ibatis.executor.statement.RoutingStatementHandler
| 41 | doQuery . in org.apache.ibatis.executor.SimpleExecutor
| 216 | queryFromDatabase in org.apache.ibatis.executor.BaseExecutor
| 95 | query . . in ''
| 72 | query in org.apache.ibatis.executor.CachingExecutor
| 75 | selectList in org.apache.ibatis.session.defaults.DefaultSqlSession
| 69 | selectList in ''
| 40 | selectOne in ''
| 217 | selectById in org.activiti.engine.impl.db.DbSqlSession
| 629 | dbSchemaUpdate in ''
| 885 | performSchemaOperationsProcessEngineBuild in ''
| 25 | execute . in org.activiti.engine.impl.SchemaOperationsProcessEngineBuild
| 24 | execute in org.activiti.engine.impl.interceptor.CommandExecutorImpl
| 42 | execute . in org.activiti.engine.impl.interceptor.CommandContextInterceptor
| 40 | execute in org.activiti.spring.SpringTransactionInterceptor
| 33 | execute . in org.activiti.engine.impl.interceptor.LogInterceptor
| 77 | <init> in org.activiti.engine.impl.ProcessEngineImpl
| 271 | buildProcessEngine in org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl
| 60 | buildProcessEngine in org.activiti.spring.SpringProcessEngineConfiguration
| 56 | getObject in org.activiti.spring.ProcessEngineFactoryBean
| 32 | getObject in ''
| 334 | innerRun in java.util.concurrent.FutureTask$Sync
| 166 | run in java.util.concurrent.FutureTask
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread
答案 0 :(得分:3)
此错误消息会出现3种可能性:
问题的修复应该是相当明显的:
答案 1 :(得分:0)
我刚刚在Grails项目中遇到了相同的症状。
我通过以不存在的格式添加新的日期变量和默认值来导致错误。
面向对象版本失败后对我有用的日期格式是:
static mapping = {
myVar defaultValue: "'01-JAN-1970'"
}
你可能有一个不同的错误,但重点是create table语句失败,可能是由于数据库交互的某些方面有点“偏离常规”并且最近添加了。
要进行问题排查,我会采取以下步骤:
1)验证您运行的是您认为自己的DataSource.groovy配置(例如,更改密码并确保您无法登录)以及您的dbCreate变量设置为“create”或“create” - 酌情。如果有充分的理由使用更新或验证,则在不同的环境中创建相同的对象并移动或仅适当地创建表。如果您不确定,请在新项目的最开始使用create-drop来使用这些工具,然后再不使用。
2)当您确认grails应该如上所述创建表格时,请打开日志记录以查看重新启动期间实际发生的情况。为此,请将“logSql = true”和“formatSql”= true添加到与用户名和密码相同级别的数据源配置中。您应该在标准输出中看到有缺陷的create语句。
3)如果您无法立即看到错误,请直接在sqlplus中运行语句以隔离违规原因。这可能会指出最近的变化。