初次使用snaker集成项目中遇到的问题
1、cacheManager配置问题
在applicationContext-snaker.xml中已有cacheManager的定义
<bean id="cacheManager" class="org.snaker.engine.cache.memory.MemoryCacheManager"/>
而我的项目中恰巧也有同样的id
<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> <property name="cacheManager" ref="cacheManagerFactory" /></bean>
这样就和snaker的配置产生了冲突,需要修改其中一个的id,但是我发现修改EhCacheManager存在新的问题,应该是和
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
有关,具体我没有深入。但是修改snaker配置中的id后,项目启动正常。
2、在发布流程定义时,没有数据写入。
控制台只看到查询语句不见插入语句,第一反应是事务问题。查看项目配置如下:
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
项目中的事务控制采用了注解,而snaker需要声名式事务配置。
<tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="start*" propagation="REQUIRED"/><tx:method name="execute*" propagation="REQUIRED"/><tx:method name="save*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="remove*" propagation="REQUIRED" /><tx:method name="assign*" propagation="REQUIRED" /> <tx:method name="create*" propagation="REQUIRED" /><tx:method name="complete*" propagation="REQUIRED" /><tx:method name="finish*" propagation="REQUIRED" /><tx:method name="terminate*" propagation="REQUIRED" /> <tx:method name="take*" propagation="REQUIRED" /><tx:method name="deploy*" propagation="REQUIRED" /><tx:method name="undeploy*" propagation="REQUIRED" /><tx:method name="redeploy*" propagation="REQUIRED" /><tx:method name="get*" propagation="REQUIRED" read-only="true" /><tx:method name="find*" propagation="REQUIRED" read-only="true" /><tx:method name="query*" propagation="REQUIRED" read-only="true" /><tx:method name="search*" propagation="REQUIRED" read-only="true" /><tx:method name="is*" propagation="REQUIRED" read-only="true" /><tx:method name="*" propagation="REQUIRED" /></tx:attributes></tx:advice><aop:config><aop:advisor advice-ref="txAdvice" pointcut="execution(* org.snaker.engine.core..*.*(..))"/></aop:config>
加入后流程定义部署成功。
3、动态加载form表单问题。
snaker-web中使用了httl中的include指令,而我想用jsp,发现有很多不便之处。
jsp中的include,jstl中的import都不能正确加载变量中的文件。如:
<c:import url="${item.form}" />
控制台看到加载的文件会有双引号。
于是采用<iframe>标签对文件进行加载,但对于放在WEB-INF目录下的文件,需要利用controller。而且前端在执行任务时,提交表单不方便。
如果form设计完成后,能存入数据库,就不存在动态加载的问题,直接显示了。
4、xx表不存在
需先导入xx.sql文件中的脚本建表。
5、snaker.xml 文件解析失败异常
个人觉得直接输出这个异常不准确,是因为文件格式不符合解析规则,还是因为编码问题无法解析,我第一次看到这个异常时我这样想了。但是,debug了一下才发现是加载某一个类的时候空指针了。
这样我觉得应该先有空针指或找不到类的异常,再有解析失败的异常,这样就明白多了。
6、在启动流程时,当前任务节点显示不正确
在视图中看到的任务节点顺序是对的,但是在解析的过程中是根据*.snaker文件中节点顺序读取的,所以导致显示当前任务节点错误。
如上,按照流程当前任务节点应该是申报登记,但是解析后的当前任务节点如下图:
流程定义如下:
欢迎@snakerflow指正。
转载于:https://my.oschina.net/fqt520/blog/278596
初次使用snaker集成项目中遇到的问题相关推荐
- ionic+vue+capacitor系列笔记--02项目中集成Capacitor,添加android,ios平台,真机运行项目
Capacitor是什么? Capacitor是由ionic团队开发的一款跨平台移动应用构建工具,可轻让我们轻松的构建Android.iOS.Electron和Web应用程序. Capacitor是A ...
- maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...
标签: 本篇内容还是建立在上一篇Java Web学习系列--Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Ja ...
- uniapp android原生,在uni-app项目中集成Android原生工程
[TOC] # 在uni-app项目中集成Android原生工程 按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦. 经 ...
- 在原有Android项目中快速集成React Native
前言 对于现有的大多数项目来说都不是从头构建的,而要在原有项目的基础上引入React Native则肯定和用react-native init xxx创建工程不同.因此下面就来说下具体操作.不过在真正 ...
- rn项目 假如cocoapods_在项目中集成 RN
在项目中集成 RN 19 Jan 2017 前言 使用 RN 难道要把整个项目都重构一遍么?教程那么多,但是很少能够有把怎么与当前项目结合起来的文章.自己摸索了一遍,记录下来.之后的 RN 之路就由此 ...
- spring 项目中集成 Protocol Buffers 示例
http://blog.csdn.net/fangzhangsc2006/article/details/8687388 本文适用于了解spring框架,同时想在spring项目中使用Protocol ...
- Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明
Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明 1.1. Mybatis invoke1 1.2. Spring的数据源配置2 1.3. Mybatis ...
- 如何在你的项目中集成 CAP【手把手视频教程】
前言 之前录制过一期关于CAP的视频,但是由于当时是直播时录制的视频,背景音比较杂所以质量有点差.这次的视频没有直播,直接录制的,视频质量会好很多,第一遍录制完成之后发现播放到一半没有声音,所以又重新 ...
- 将MongoDB集成到您的Spring项目中
本文展示了如何通过注释配置将MongoDB集成到您的spring项目中. 我们将从Gradle配置开始. group 'com.gkatzioura.spring' version '1.0-SNAP ...
- redis集成spring_将Redis集成到您的Spring项目中
redis集成spring 本文介绍如何通过注释配置将Redis缓存集成到您的spring项目中. 我们将从Gradle配置开始. 我们将使用jedis驱动程序. group 'com.gkatzio ...
最新文章
- 简单读!tomcat源码(一)启动与监听
- SEE Conf 2021 如期而至,体验科技极致美
- Hibernate配置文件,省的到处找了
- 【pmcaff】从 Lending Club 的 IPO,我们能学到些什么
- [QPlugins]学习大纲
- js 遍历对象的几种方法
- win10开始不显示python_win10从零安装配置pytorch全过程图文详解
- Python的虚拟环境virtualenv
- 《移动浪潮》读书笔记
- 大数据精准运营需要注意的点
- overflow与text-indent:-999em 字体隐藏
- https://mp.csdn.net/
- photoshop抠图与相框的制作
- ppt画深度学习网络图-立体网络模块
- 社区团购小程序怎么做,全流程解析
- 物质、分子、原子、原子核、中子、质子、电子、量子、离子的区别
- 上海出差之行--领略外滩美景、RT-Thread总部之旅、嵌友面基、返程记录
- MIPS汇编语言学习-01-两数求和以及环境配置、如何运行
- 会计的思考(15):华而不实的应收账款周转率
- 【2023考研数学二考试大纲】
热门文章
- gprs java_GPRS类型一览
- 浏览器被hao123篡改怎么办?
- 基于Python实现的微信好友数据分析
- 基于NAR神经网络的时间序列预测
- Android日历控件
- 国内外php商城系统 开源
- 基于PHP+Html+MySQL的网上手机商城系统
- oracle数据投毒,Oracle Database Server TNS Listener远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
- 【Linux os7】--详细搭建LAMP+安装Zabbix4监控服务
- Tomcat服务器 和 HTTP协议