近期在学习activiti,打算基于现有的框架,比如activiti-explorer或者咖啡兔的示例工程 kft-activiti-demo,在此基础上添加自己的业务流程,看看是否可以走通,以及这个过程要走通,需要编写哪些方面的代码,然后选定使用kft-activiti-demo来作为试点,由于公司的网络无法连接maven库,所以选择了kft-activiti-demo-no-maven版本来测试,由于对java技术栈不熟悉,所以搭建环境的过程中引出了各种问题,下面将详细记录搭建的步骤,以避免后来人继续掉坑里。

 

一、开发环境

windows 10 64位

jdk 1.8

Eclipse Java EE IDE for Web Developers. 4.5.0

tomcat 7.0.64

 

二、相关资源

1)参照了  中的说明;

2)从 下载了henryyan-kft-activiti-demo-1.10.2-no-maven-5-g9340b4a.zip

3)从  下载了h2客户端;

 

三、解决各种编译错误

1)将henryyan-kft-activiti-demo-1.10.2-no-maven-5-g9340b4a.zip 解压到henryyan-kft-activiti-demo-9340b4a_nomaven;

2)使用eclipse打开该工程

然后点击finish即可,在eclipse中显示如下:

3)编译该工程,通过如下按钮进行;

4)编译之后会提示如下错误:

下面逐个解决;

    a)javax.servlet.jsp.JspException cannot be resolved to a type、javax.servlet.jsp.PageContext cannot be resolved to a type

   解决这个异常需要加入:jsp-api.jar在tomcat安装目录的libs中有、同样如果servlet异常需要加入servlet-api.jar tomcat也有的,在当前工程中,主要是由于工程中配置的是要求tomcat 6.0,但是在当前eclipse中配置的是tomcat 7.0.64版本,所以需要按照下图所示,在server library中选择当前eclipse中配置的web服务器 tomcat 7.0,确定之后就会自动引入该tomcat的lib目录下的jar包

    引入之后如下:

  

    然后再次重新编译,应该只剩下如下两个错误:

  b)cvc-complex-type.2.4.a: Invalid content was found starting with element 'display-name'.

    对于该问题,只需要双击打开web.xml文件,然后把有问题的这行删除即可,初步怀疑是在最新版本的web.xml中,已经取消了display-name配置项。

 

    c)Target runtime Tomcat v6.0.32-eclipse is not defined.

    该问题在如下路径(     )中找到了解决方法,说到底就是要修改工程目录下的.settings文件夹里org.eclipse.wst.common.project.facet.core.xml文件。他当前的内容是:

<?xml version="1.0" encoding="UTF-8"?>

<faceted-project>

  <runtime name="Tomcat v6.0.32-eclipse"/>

  <fixed facet="wst.jsdt.web"/>

  <fixed facet="jst.web"/>

  <fixed facet="java"/>

  <installed facet="java" version="1.6"/>

  <installed facet="jst.web" version="2.5"/>

  <installed facet="wst.jsdt.web" version="1.0"/>

</faceted-project>

 

    要把他改为:

<?xml version="1.0" encoding="UTF-8"?>

<faceted-project>

  <runtime name="Apache Tomcat v7.0"/>

  <fixed facet="java"/>

  <fixed facet="wst.jsdt.web"/>

  <fixed facet="jst.web"/>

  <installed facet="java" version="1.8"/>

  <installed facet="jst.web" version="3.0"/>

  <installed facet="wst.jsdt.web" version="1.0"/>

</faceted-project>

    

    在工程上右键刷新一下。

    

    然后clean,重新编译之后,应该还有如下一个错误:

    

 

    d)Java compiler level does not match the version of the installed Java project facet.

    在工程属性中修改当前工程的java 编译器,改为当前安装的版本即可,在本例中我安装的是1.8,那么选择1.8再重新编译,应该就没有错误了。

   

四、部署    

    在项目上右键 run as ->run on server,弹出如下对话框,选择一个tomcat服务器,点击finish即可。

      

启动之后,会显示如下页面:

 

如果是第一次使用,在输入用户名和密码之后,会提示如下错误:

这是因为h2数据库没有初始化,需要按照如下步骤做初始化。

1)从 下载h2客户端jar 包;

2)把该jar包拷贝到某路径,

3)确保刚刚启动的eclipse已经退出运行状态;

4)然后在控制台中运行 java -jar h2-1.3.167.jar,然后会在浏览器中弹出如下界面:

4)在jdbc url中输入:jdbc:h2:file:~/kft-activiti-demo;AUTO_SERVER=TRUE

然后点击connect,显示界面如下:

然后依次执行源码目录下的以下sql脚本,将脚本内容拷贝到上述界面的文本框中,点击Run执行。

+resources\sql\h2\create

    -activiti.h2.create.engine.sql

    -activiti.h2.create.history.sql

    -activiti.h2.create.identity.sql

+resources\sql\h2

    -data.sql

执行好完之后,应该包括如下这些表:

然后退出控制台,重新再eclipse 中 run as -> run on server,这次再输入用户名、密码,就可以正常登陆了。

登录之后界面如下图所示:

 

 

好了,环境搭建完成,可以开始学习源码了。

本文转自:

感谢分享!!