Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法
2017-06-06 16:26
731 查看
现象描述:按照正常配置,第一次启动时不能自动建表
关键配置片段如下:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseSchemaUpdate" value="true" />
<property name="jobExecutorActivate" value="true" />
</bean>
启动后报错:
### The error may exist in org/activiti/db/mapping/entity/Property.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: select VALUE_ from ACT_GE_PROPERTY where NAME_ = 'schema.version'
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在
经过调试分析,发现是关键判断表是否存在代码返回true值引起的,org.activiti.engine.impl.db.DbSqlSession.isTablePresent(String tableName);问题在于方法里面的schema=null,而连接的数据库实例下已经有另外一个用户activiti已经创建过表。
于是在引擎配置里面加入属性:
<property name="databaseSchema" value="act"/>
再启动,成功创建表。到此本以为问题已解决,停掉服务再次启动,失败,报建表错误:对象已存在。调试发现isTablePresent返回的还是false(表还未创建)。
发现是大小写问题,最后改成
<property name="databaseSchema" value="ACT"/>
关键配置片段如下:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseSchemaUpdate" value="true" />
<property name="jobExecutorActivate" value="true" />
</bean>
启动后报错:
### The error may exist in org/activiti/db/mapping/entity/Property.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: select VALUE_ from ACT_GE_PROPERTY where NAME_ = 'schema.version'
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在
经过调试分析,发现是关键判断表是否存在代码返回true值引起的,org.activiti.engine.impl.db.DbSqlSession.isTablePresent(String tableName);问题在于方法里面的schema=null,而连接的数据库实例下已经有另外一个用户activiti已经创建过表。
于是在引擎配置里面加入属性:
<property name="databaseSchema" value="act"/>
再启动,成功创建表。到此本以为问题已解决,停掉服务再次启动,失败,报建表错误:对象已存在。调试发现isTablePresent返回的还是false(表还未创建)。
发现是大小写问题,最后改成
<property name="databaseSchema" value="ACT"/>
相关文章推荐
- Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法
- Activiti5.15.1部署到oracle后不能自动建表的问题分析及解决办法
- Activiti启动项目不能自动创建和更新表的问题
- activiti 部署在oracle多用户下不能自动建表问题的解决!
- 计算机名称修改后Oracle不能正常启动问题分析及解决
- SpringBoot web demo项目启动后立马自动关闭问题解决办法
- 从SVN上更新项目后,MyEclipse不能自动编译问题解决
- 计算机名称修改后Oracle不能正常启动问题分析及解决
- Activiti配置Oracle不能自动创建表/流程启动是表或试图不存在的问题
- 用 ERD 盘解决 Win8 自动更新后不能启动的问题
- Win7如何提升为管理员权限,如何开机启动需要管理员权限的程序,解决win7开机不能自动运行的问题等
- Win7如何提升为管理员权限,如何开机启动需要管理员权限的程序,解决win7开机不能自动运行的问题等
- Oracle Web Console不能正常启动时的解决办法
- android 开发中遇到的错误及解决方式(更新R.java文件不能自动更新问题)
- ASP.NET中应用UltraWebGrid控件时在Cell中按一下回车后不能自动转到下一单元格的问题及解决办法
- XenServer6.0不能自动启动VM的解决办法
- 关于eclipse中adt插件不能启动的问题的解决办法
- XP的系统防火墙不能用,自动更新显示灰色的解决办法
- [记录]在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- WAS profile 通过manageprofiles.bat 创建不能作为主机服务项自动随开机启动问题解决方法