本文仅从应用角度出发,一步步讲解怎么把流程图显示在jsp页面中。如果有错误的地方请各位不吝赐教。
1 首先找到jbpm项目自带的 org.jbpm.webapp.servlet下的三个servlet:deployServlet,ProcessImageServlet,UploadServlet 和org.jbpm.webapp.servlet下的processImageTag。把这些东东copy到你的项目的src中
2 配置项目下的web.xml,代码如下:
java 代码
- <servlet></servlet>
- <servlet-name></servlet-name>ProcessImageServlet
- class>org.jbpm.webapp.servlet.ProcessImageServletclass>
- <servlet-mapping></servlet-mapping>
- <servlet-name></servlet-name>ProcessImageServlet
- <url-pattern></url-pattern>/processimage
- <servlet></servlet>
- <servlet-name></servlet-name>DeployServlet
- class>org.jbpm.webapp.servlet.DeployServletclass>
- <servlet-mapping></servlet-mapping>
- <servlet-name></servlet-name>DeployServlet
- <url-pattern></url-pattern>/deploy
- <servlet></servlet>
- <servlet-name></servlet-name>UploadServlet
- class>org.jbpm.webapp.servlet.UploadServletclass>
- <servlet-mapping></servlet-mapping>
- <servlet-name></servlet-name>UploadServlet
- <url-pattern></url-pattern>/upload
3 把jbpm自带的标签定义 jbpm.tld copy到你的项目的/web-info 目录下
4 找到jbpm自带的deploy.html(把这个html放在项目的webroot根目录下,牵涉到servlet的解析问题),这就是流程定义的部署页面。
5 流程定义文件的打包:在eclipse的process definition的设计界面下打开你设计好的流程定义图,利用designer的 “deployment”把三个文件(gpd.xml processdefiniton.xml. processimage.jpg)打包,点击“save process archive locally”,选定“location”,点击“save without deplying”保存流程定义文件包(当然你也可以利用desinger中的deployment server setting ,只要能把这三个文件部署到你的数据库中即可)
6 利用deploy.html部署打包好的流程定义文件包 到数据库。可以查看jbjpm_bytearray表中是否有数据,有的话则表明部署成功,否则就是没有部署成功
7一定要把显示流程图的jsp页面(假设名字为show.jsp)放在webroot根目录下(因为牵涉到servlet的解释问题),在jsp页面中调用 <jbpm:processimage task="<%=taskInstanceid %>"></jbpm:processimage>即可显示出流程图及当前节点的位置。
8如果有nullpointexception,修改UploadServlet,代码如下:
JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
if(jbpmContext == null)
{
jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
}
8 运行试试吧,应该能够成功的。