jbpm6 部署到tomcatt8和jbpm4.4冲突怎么解决

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博客分类:
&& 自从前些日子发布了如何整合JBPM4.4+ssh2后,有些朋友问我有没有一个完整一点的实例,我看过贩卖你的jbpm的教程,我就参考那个请假的实例把它改装成ssh2版的吧。顺便也加入了模拟不同的角色登陆后能接到不同的待办任务,我也不多啰嗦,在这里我贴出action代码,
package com.zwl.
import java.io.F
import java.io.IOE
import java.io.InputS
import java.util.HashM
import java.util.HashS
import java.util.L
import java.util.M
import java.util.S
import java.util.zip.ZipInputS
import javax.servlet.ServletOutputS
import org.apache.struts2.ServletActionC
import org.jbpm.api.ExecutionS
import org.jbpm.api.ProcessD
import org.jbpm.api.ProcessE
import org.jbpm.api.ProcessI
import org.jbpm.api.RepositoryS
import org.jbpm.api.TaskS
import org.jbpm.api.model.ActivityC
import org.jbpm.api.task.T
import com.opensymphony.xwork2.ActionC
import com.opensymphony.xwork2.ActionS
import com.zwl.vo.ProcessVo;
public class JbpmAction extends ActionSupport
private ProcessEngine processE
private RepositoryService repositoryS
private ExecutionService executionS
private TaskService taskS
private List&ProcessDefinition& processDefinitionL
private List&ProcessInstance& processInstanceL
private List&Task& taskL
private ActivityC
private ProcessVo processVo;
private Map&String, Object&
public void setId(String id)
public String getId()
public ActivityCoordinates getAc()
public List&ProcessInstance& getProcessInstanceList()
return processInstanceL
public List&Task& getTaskList()
return taskL
private void init()
repositoryService=processEngine.getRepositoryService();
executionService=processEngine.getExecutionService();
taskService=processEngine.getTaskService();
public List&ProcessDefinition& getProcessDefinitionList()
return processDefinitionL
private String userN
public String getUserName()
return userN
public void setUserName(String userName)
this.userName = userN
@SuppressWarnings("unchecked")
public String login()
Map map=ActionContext.getContext().getSession();
map.put("user", userName);
return SUCCESS;
* 加载首页
public String loadIndexPage()
processDefinitionList=repositoryService.createProcessDefinitionQuery().list();
processInstanceList=executionService.createProcessInstanceQuery().list();
//这里模拟不同的角色登陆系统,会接到不同的待办任务
String manager="zwllxs1,zwllxs2,zwllxs3,zwllxs4";
String boss="zhangweilin,zhangweilin2,zhangweilin3,zhangweilin4";
String roleName="";//要按此名去查找它所在的节点
String name=getLoginedUserName();
//经理登陆
if(manager.contains(name))
roleName="manager";
//老板登陆
else if(boss.contains(name))
roleName="boss";
//普通用户
System.out.println("roleName: "+roleName);
taskList=taskService.findPersonalTasks(roleName);
System.out.println("taskList: "+taskList);
return SUCCESS;
public String deploy()
System.out.println("部署");
String did=repositoryService.createDeployment().addResourceFromClasspath("leave2.jpdl.xml").deploy();
ZipInputStream zis = new ZipInputStream(this.getClass().getResourceAsStream("/leave2.zip"));
//发起流程,仅仅就是预定义任务,即在系统中创建一个流程,这是全局的,与具体的登陆 用户无关。然后,在启动流程时,才与登陆用户关联起来
String did=repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy();
//使用zip方式
ZipInputStream zis = new ZipInputStream(this.getClass().getResourceAsStream("/leave2.zip"));
//发起流程,仅仅就是预定义任务,即在系统中创建一个流程,这是全局的,与具体的登陆 用户无关。然后,在启动流程时,才与登陆用户关联起来
String did=repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy();
System.out.println("did: "+did);
return SUCCESS;
@SuppressWarnings("unchecked")
public String start()
Map map = new HashMap();
//在启动任务时,等于就是一个用户要请假了,那么,此时,要把流程信息关联到此用户上,在开始的下一个节点(也就是第一个任务节点),是指派给。所以用户名要与其对应的变量关联起来
map.put("owner", getLoginedUserName());
System.out.println("id_: "+id);
ProcessInstance processInstance=executionService.startProcessInstanceById(id, map);
System.out.println("启动时processInstance: "+processInstance.getId());
return SUCCESS;
public String manager()
Task task = taskService.getTask(id);
String taskId=task.getId();
Set&String& strSet=new HashSet&String&();
strSet.add("owner");
strSet.add("day");
strSet.add("reason");
strSet.add("name");
taskService.getVariable(taskId, "owner");
map=taskService.getVariables(taskId, strSet);
System.out.println("map: "+map);
return SUCCESS;
* 老板来了
public String boss()
Task task = taskService.getTask(id);
String taskId=task.getId();
Set&String& strSet=new HashSet&String&();
strSet.add("owner");
strSet.add("day");
strSet.add("reason");
strSet.add("name");
strSet.add("sex");
strSet.add("age");
taskService.getVariable(taskId, "owner");
map=taskService.getVariables(taskId, strSet);
return SUCCESS;
* 老板处理
public String submitBoss()
taskService.completeTask(id);
return SUCCESS;
* 经理提交
public String submitManager()
taskService.completeTask(id, result);
return SUCCESS;
public String remove()
repositoryService.deleteDeploymentCascade(id);
return SUCCESS;
public String view()
//通过id查到流程实例
ProcessInstance processInstance = executionService.findProcessInstanceById(id);
Set&String& activityNames = processInstance.findActiveActivityNames();
//Coordinates为相依衣物
ac = repositoryService.getActivityCoordinates(processInstance.getProcessDefinitionId(),activityNames.iterator().next());
return SUCCESS;
* 显示图片
* @throws IOException
public void pic() throws IOException
ProcessInstance processInstance = executionService.findProcessInstanceById(id);
String processDefinitionId = processInstance.getProcessDefinitionId();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).uniqueResult();
String path=ServletActionContext.getRequest().getRealPath("");
String filePath=path+"\\WEB-INF\\classes\\leave2.png";
String filePath="leave2.png";
System.out.println("filePath: "+filePath);
File file=new File(filePath);
System.out.println("存在么: "+file.exists());
//此处不知道为什么还要特别的通过repositoryService和processDefinition.getDeploymentId()来显示此图片
InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(),filePath);
System.out.println("inputStream2: "+inputStream);
//InputStream inputStream =new FileInputStream(new File("D:/program/java/servers/apache-tomcat-5.5.23/webapps/jbpm2/WEB-INF/classes/leave.png"));
byte[] b = new byte[1024];
int len = -1;
ServletOutputStream sos=ServletActionContext.getResponse().getOutputStream();
while ((len = inputStream.read(b, 0, 1024)) != -1)
sos.write(b, 0, len);
sos.close();
@SuppressWarnings("unchecked")
public String submit()
Map map = new HashMap();
//此day, 在xml文件中,有一个decision标签,里面有一个表达式:expr="#{day & 3 ? '老板审批' : '结束'}"
//即它与表达式中的day关联
map.put("day", processVo.getDay());
map.put("reason", processVo.getReason());
map.put("name", "张伟林submit");
//如果第二个参数为字符串,则是指定要向哪个方向完成,此是指定要向testhaha完成,并且如果线条上指定了文字,
//就只能按着文字去指定方向,如果没有文字,才能用map,
//也就是说,如果传递的参数为map,则流程会去寻找没定义名称的线条走,如果没找到。就抛出No unnamed transitions were found for the task 异常
//taskService.completeTask(taskId, "testhaha");
//如果第二个参数为map,则表示只是传递参数而已
System.out.println("提交完毕");
taskService.completeTask(processVo.getTaskId(), map);
return SUCCESS;
public String getLoginedUserName()
return (String) ActionContext.getContext().getSession().get("user");
public void setProcessEngine(ProcessEngine processEngine)
this.processEngine = processE
private static final long serialVersionUID = 4781094L;
public ProcessVo getProcessVo()
return processVo;
public void setProcessVo(ProcessVo processVo)
this.processVo = processVo;
public Map&String, Object& getMap()
public String getResult()
public void setResult(String result)
this.result =
完整的可运行项目代码下载地址为:
& 很多朋友要求我把jar包也上传,jar包下载地址为:
&
浏览: 454659 次
来自: 上海
你好,我使用第一种方法在页面上引用一直报错,使用第二种方法没问 ...
你好,我遇到的问题是这样的:de.hybris.platfor ...
嗯,这个确实是的。
我找了很多资料,终于在您这看到了。谢谢了。顺便说一下:该pro ...
[color=orange][/color]sdfsdfsdf ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'17:44 提问
jbpm4.4整合SSH 在tomcat中启动后控制台一直查询JBPM4_JOB表
jbpm4.4整合SSH 在tomcat中启动后控制台一直查询JBPM4__JOB表,_这是正常现象吗,应该这么解决呢????求解答
按赞数排序
是不是有业务需要重复执行。
不会呀 我只整合好了SSH还没什么都没做呢 知识启动了tomcat
我的applicationContext.xml:
&!-- =================jbpm4.4配置==================== --&
&bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"&
&property name="driver"&
&value&com.mysql.jdbc.Driver&/value&
&/property&
&property name="driverUrl"&
&value&jdbc:mysql://localhost:3306/jbpm4?useUnicode=true&characterEncoding=utf-8&/value&
&/property&
&!-- &property name="user" value="mysqlusername"/& --&
&property name="user"&
&value&root&/value&
&/property&
&property name="password"&
&value&123456&/value&
&/property&
&property name="alias" value="proxool"/&
&property name="maximumActiveTime" value="5000"/&
&property name="prototypeCount" value="10"/&
&property name="maximumConnectionCount" value="40"/&
&property name="minimumConnectionCount" value="30"/&
&property name="simultaneousBuildThrottle" value="50"/&
&property name="houseKeepingTestSql" value="select CURRENT_DATE from dual"/&
&!-- 集成hibernate配置 --&
&bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="dataSource" ref="dataSource" /&
&property name="hibernateProperties" ref="hibernateProperties" /&
&property name="mappingLocations"&
&value&classpath:jbpm.repository.hbm.xml&/value&
&value&classpath:jbpm.execution.hbm.xml&/value&
&value&classpath:jbpm.history.hbm.xml&/value&
&value&classpath:jbpm.task.hbm.xml&/value&
&value&classpath:jbpm.identity.hbm.xml&/value&
&/property&
&bean name="hibernateProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean"&
&property name="properties"&
&!-- 当你使用mysql的时候,jbpm使用的是org.hibernate.dialect.MySQLInnoDBDialect --&
&prop key="hibernate.dialect"&org.hibernate.dialect.MySQLInnoDBDialect&/prop&
&prop key="hibernate.show_sql"&false&/prop&
&prop key="hibernate.hbm2ddl.auto"&update&/prop&
&prop key="hibernate.format_sql"&true&/prop&
&/property&
&!-- jbpm配置 --&
&bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" &
&property name="jbpmCfg" value="jbpm.cfg.xml"&&/property&
&bean id="processEngine" factory-bean="springHelper"
factory-method="createProcessEngine" /&
&!-- 模板配置自己写的,不是必须的 --&
&bean id="jbpm4Utils" class="jetsennet.ncss.jbpm4.Jbpm4Utils"&
&property name="processEngine" ref="processEngine"&&/property&
&!-- 事务配置,必须 --&
&bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory" ref="sessionFactory" /&
我的jbpm.cfg.xml:
&?xml version="1.0" encoding="UTF-8"?&
&jbpm-configuration&
&import resource="jbpm.default.cfg.xml" /&
&import resource="jbpm.tx.spring.cfg.xml" /&
&import resource="jbpm.jpdl.cfg.xml" /&
&import resource="jbpm.bpmn.cfg.xml" /&
&import resource="jbpm.identity.cfg.xml" /&
&import resource="jbpm.businesscalendar.cfg.xml" /&
&import resource="jbpm.console.cfg.xml" /&
&import resource="jbpm.jobexecutor.cfg.xml" /&
&process-engine-context&
&string name="spring.cfg" value="config/applicationContext.xml" /&
&/process-engine-context&
&/jbpm-configuration&
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)jbpm4.4安装(tomcat-mysql)
1.JBPM4.4下载(http://sourceforge.net/projects/jbpm)
2.ant安装:jBPM下载包install目录中有一个ant的build.xml文件,使用ant
-p你可以看到所有的安装
3. 安装数据库
1)MySQL中创建一个库,库名:jbpmdb
2)修改install\build.xml
&!-- DEFAULT PROPERTY VALUES
&property name="database" value="hsqldb"
/&,value值更改为value="mysql"
3)修改\install\jdbc\mysql.properties中的数据库配置(有时候安装别的数据库时缺少相应的jar包,需要将相应的jar包copy到jbpm-4.4\lib目录下
create.jbpm.schema
4.安装服务器
&& 1)ant install.tomcat
install.jbpm.into.tomcat:把jBPM安装到tomcat中,这时候在jbpm-4.4目录下生成apache-tomcat-6.0.26
load.example.identities:读取实例用户和用户组数据到mysql数据库.生成用户名与密码:
用户名&&& 密码
peter&& password
mary&& password
&& 4) 启动tomcat
&&& Signavio
web(web版流程设计器)地址http://localhost:8080/jbpmeditor/p/explorer(注意在IE7不行,firefox3可以)
jBPM控制台地址http://localhost:8080/jbpm-console
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 jbpm4.4下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信