您的位置:首页 > 其它

activiti工作流框架初次发布就遇到乱码问题

2017-11-02 14:37 459 查看
公司用到工作流框架 打算自己下过来 了解一下用法
这个框架的入门真的是蛮烦的 用户手册根本没法看
最后找到个请假案例 http://blog.csdn.net/a67474506/article/details/38266129 前面按照所说部署后 在发布流程的时候 会报这样一个错误


### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?肟駴?譯冟詌鹧L鹆LP
偋^x㏑{御??r??ヘN??橘噤汆屡?P*會?啁谶}' at line 2


一个语法错误,又伴随着乱码,当时第一思路是语法有问题,因为百度的时候有看到一个说与MYSQL的保留字leave冲突的例子,于是把所有的leave换成leaves,结果还是一样的错误,于是打算先把乱码解决了再说,把数据库,eclipse,换成utf8后依然没有解决,最后再环境变量中也去设置了utf8,依然没有。然后就没有别的思路了
一筹莫展到处乱看的时候,发现这么一个思路


//开始莫名其妙遇到数据库连接乱码,后台强行把jdbc改成这样就没事了(为什么说强行,因为很多示例都没有这么加)
jdbc:mysql://localhost:3306/activiti?useUnicode=true;characterEncoding=utf-8


于是我也这样弄了,不过要指出的是,中间的分号“;”,要用`&`代替

这样就完成了流程的发布,以前不明白数据库连接为什么一定要这样写,这下认识到了,至少是个排除办法


总结下跑通流程后出现的问题
1.框架的配置文件一定要写成activiti.cfg.xml,原文有写   是因为框架源码就这样写死的。
2.


@Test
public void deployFlow() {
RepositoryService repositoryService = processEngine
.getRepositoryService();
InputStream in = this.getClass().getClassLoader()
.getResourceAsStream("myActiviti.zip");
ZipInputStream zipInputStream = new ZipInputStream(in);
DeploymentBuilder addZipInputStream = repositoryService.createDeployment()
.addZipInputStream(zipInputStream).name("myProcess");
addZipInputStream.deploy();
}


这段中方法内第一行processEngine.getRepositoryService();

其中processEngine的声明是通过如下代码生成的全局变量

ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();


3、数据库连接写错的话只会报空指针异常 是因为ProcessEngines.getDefaultProcessEngine();这段代码要解析配置文件,数据库没连上解析不成功 ,所以实例化一个null出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: