String isSubmit=request.getParameter("isSubmit");
if(null!=isSubmit&"true".equals(isSubmit)){
String title=request.getParameter("title");
String money_count=request.getParameter("money_count");
String re=request.getParameter("re");
String issueperson=request.getSession().getAttribute("loginuser").toString();
JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
try{
//设置当前的登录用户为issueperson
jbpmContext.setActorId(issueperson);
ProcessDefinition pd=jbpmContext.getGraphSession().findLatestProcessDefinition("payment");
//每次都新建一个实例
ProcessInstance pi=new ProcessInstance();
pi=pd.createProcessInstance();
out.println("<script> alert("+pi.getId()+")</script>");
ContextInstance ci=pi.getContextInstance();
ci.setVariable("issueperson",issueperson);
//创建任务开始节点的TaskInstance
TaskInstance ti=pi.getTaskMgmtInstance().createStartTaskInstance();
//向任务实例当中写入相关变量
ti.setVariable("title",title);
ti.setVariable("money_count",money_count);
ti.setVariable("re",re);
//结束任务实例,流程的Token就进入部门经理审批节点
ti.end();

}finally{
jbpmContext.close();
}
out.println("<h1>报销申请提交成功</h1>");
return;
}
<form action="wirte.jsp" method="post">
   报销主题:<input type="text" name="title"/><br/>
   报销金额:<input type="text" name="money_count" /><br>
   报销说明:<input type="text" name="re"/><br/>
   <input type="hidden" name="isSubmit" value="true"/>
   <input type="submit" value="提交报销"/>
  </form>
分配审核人public class ManagerAssignment implements AssignmentHandler,Constants { @Override
public void assign(Assignable assignable, ExecutionContext executionContext) throws SqlOperationException {
//从当前流程实例上下文当中取出当前报销人
String issueperson=executionContext.getContextInstance().getVariable(this.ISSUE_PERSON).toString();
if(issueperson.equals("user1")){
//当报销人为user1时,部门经理为manager1
assignable.setActorId("manager1");
}else{
//当报销人为其他人时,部门经理为manager2
assignable.setActorId("manager2");
}
}}

解决方案 »

  1.   

    org.apache.jasper.JasperException: An exception occurred processing JSP page /test/wirte.jsp at line 3330:  ti.end();
    31: 
    32:  }finally{
    33:  jbpmContext.close();
    34:  }
    35:  out.println("<h1>鎶ラ攢鐢宠鎻愪氦鎴愬姛</h1>");
    36:  return;
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    root cause org.jbpm.JbpmException: problem closing services {persistence=org.jbpm.persistence.JbpmPersistenceException: hibernate commit failed}
    org.jbpm.svc.Services.close(Services.java:235)
    org.jbpm.JbpmContext.close(JbpmContext.java:139)
    org.apache.jsp.test.wirte_jsp._jspService(wirte_jsp.java:108)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    root cause org.jbpm.persistence.JbpmPersistenceException: hibernate commit failed
    org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:216)
    org.jbpm.svc.Services.close(Services.java:222)
    org.jbpm.JbpmContext.close(JbpmContext.java:139)
    org.apache.jsp.test.wirte_jsp._jspService(wirte_jsp.java:108)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    root cause org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
    org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
    org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
    org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)
    org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
    org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
    org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2242)
    org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2678)
    org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
    org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
    org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
    org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
    org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
    org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
    org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
    org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
    org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:253)
    org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:211)
    org.jbpm.svc.Services.close(Services.java:222)
    org.jbpm.JbpmContext.close(JbpmContext.java:139)
    org.apache.jsp.test.wirte_jsp._jspService(wirte_jsp.java:108)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    root cause java.sql.BatchUpdateException: ORA-00001: 违反唯一约束条件 (HZRENFANG.SYS_C005718) oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
    oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656)
    org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
    org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
    org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)
    org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
    org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
    org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2242)
    org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2678)
    org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
    org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
    org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
    org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
    org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
    org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
    org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
    org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
    org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:253)
    org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:211)
    org.jbpm.svc.Services.close(Services.java:222)
    org.jbpm.JbpmContext.close(JbpmContext.java:139)
    org.apache.jsp.test.wirte_jsp._jspService(wirte_jsp.java:108)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      

  2.   

    java.sql.BatchUpdateException: ORA-00001: 违反唯一约束条件 (HZRENFANG.SYS_C005718)
    查看你更新的字段是不是有相同的了 ,你可以把唯一去了 看看好了没,如果好了,看看是哪个字段引起的。找找原因。
      

  3.   

    晕,这个表是jbpm自动生成的,我没法动的!!!