1. 简介
由于项目的需要,需要在最近熟悉Activiti框架的用法,而现在主要介绍Activiti不错的资源有杨恩雄老师的疯狂工作流讲义,杨老师也为开发者分享了配套这本书的配套视频,可以让我们快速的学习。由于之前一直在看博客,看书,但始终觉得无法真正理解工作流的一些东西,但杨老师的配套视频简单易懂,而且每节课都有配套的视频和代码,每个代码都是独立可以运行的,通过学习这些视频,运行代码,就能够对Actviti工作流框架有充分的理解。这篇文章是在学习第四讲编写第一个Activiti程序时遇到的问题的记录。
1.1 开发环境
- Eclipse-jee-mars-R-win32-x86_64.zip
- MySql-8.0.11-winx64
- JDK1.8.0.0_181
2. 问题描述
2.1 Unknown system variable ‘query_cache_size’
java连接mysql 报错
java.sql.SQLException: Unknown system variable 'query_cache_size'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:545)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:115)
at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1983)
at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1936)
at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1422)
at com.mysql.cj.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:2831)
at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:2381)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:1739)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:1596)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:633)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:347)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:219)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
按照杨老师的视频课程,找到相应的jar包,放入lib,并且在resource source folder添加三个文件activiti.cfg.xml, first.bpmn, log4j.properties。然后运行时就报出了这个问题。解决步骤如下:
2.1.1 解决方式
通过在网上查找资料,发现这个问题是因为杨老师所使用的连接mysql的驱动文件的版本较低,杨老师用的mysql-connector-java的版本为5.1.41,我从外网找了一个较高的版本5.1.46,如下操作。
2.1.1.1 拷贝进入内网
2.1.1.2 放入lib目录下
对mysql-connector-java-5.1.46.jar文件选中,Ctrl + C
进入eclipse,右击lib,选择Paste即可
2.1.1.3 修改jar引入
删去原有的mysql-connector-java-5.1.41.jar,然后右击first-act项目,选择Properties–>Build Path–>Add JARs–>把新添加的mysql-connector-java-5.1.41.jar勾选确认。即可
2.2 System.out.pringln不工作
如上修改之后,可以看到工作流引擎可以正常工作建表, 但出现了一个新的问题,即我在执行程序的时候,程序仅仅打出一些日志信息,在部署表中却看不到应该新增的项,然后自己尝试在程序代码之间插入输入语句,即类似
System.out.pringln("AAAAA");
的输出语句,但程序竟然没有输出。AAAAA,太奇怪了。
尝试着在同一个包中建立了一个新类Hello,然后打印Hello World,却提示找不到主类,错误信息如下:
eclipse 下找不到或无法加载主类的解决办法
,看到网页
上说要去Jar包哪里看看,然后就进入,进入方式如下:
字节码不存在无法运行了在项目名上右键 -> Builder Path -> Configure Build Path 发现Libraries中mysql-connector-java5.1.41.jar虽然被自己在eclipse主界面删掉了,但并未在Libraries中Remove该jar报,所以在first-act项目上有一个红色的感叹号。选中移除之后,问题得到解决,可以看到工作流程与杨老师所讲述的一样