To create web application using spring mvc and activiti in background
This post has been migrated to following link.
My new blog
steps :1
create maven project with following pom
This post has been migrated to following link.
My new blog
steps :1
create maven project with following pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.gk</groupId> <artifactId>activitiMakerChecker</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>activitiMakerChecker Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <org.springframework.version>4.2.4.RELEASE</org.springframework.version> <jdk.version>1.6</jdk.version> <spring.version>4.0.5.RELEASE</spring.version> <jstl.version>1.2</jstl.version> <servletapi.version>3.1.0</servletapi.version> <org.hibernate.version>4.0.1.Final</org.hibernate.version> <org.hibernate.annotation.version>3.5.6-Final</org.hibernate.annotation.version> </properties> <dependencies> <!-- Activiti dependencies --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.14</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>5.14</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.2</version> </dependency> <!-- Hibernate dep --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${org.hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${org.hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>${org.hibernate.annotation.version}</version> </dependency> <!-- Oracle dependency --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>activitiMakerChecker</finalName> </build> </project> Now run command : mvn eclipse:eclipse -Dwtpversion=2.0step 2:,
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
hello-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scan base-package="com" />
<mvc:annotation-driven />
<bean id="dataSource"
class="oracle.jdbc.pool.OracleDataSource">
<property name="URL" value="your url" />
<property name="user" value="user" />
<property name="password" value="password" />
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseSchemaUpdate" value="false" />
<property name="jobExecutorActivate" value="false" />
</bean>
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
<bean id="repositoryService" factory-bean="processEngine"
factory-method="getRepositoryService" />
<bean id="runtimeService" factory-bean="processEngine"
factory-method="getRuntimeService" />
<bean id="taskService" factory-bean="processEngine"
factory-method="getTaskService" />
<bean id="historyService" factory-bean="processEngine"
factory-method="getHistoryService" />
<bean id="managementService" factory-bean="processEngine"
factory-method="getManagementService" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
step 3
Java code
package com.nuc.process;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.ProcessEngines;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MyProcess {
@Autowired
ProcessEngine processEngine;
@RequestMapping(value="hello")
public String sayHello() {
System.out.println("Controlle is here");
if(processEngine==null)
{
System.out.println("Nulla");
}
else
{
System.out.println("Not null");
}
return "welcome";
}
}
Controller classpackage com.gk.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.activiti.bpmn.model.UserTask;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.gk.dao.Dao;
import com.gk.dao.User;
import com.nuc.service.UserTaskList;
@Controller
public class MyController {
@Autowired
@Qualifier("dao")
Dao dao;
@Autowired
private ProcessEngine processEngine;
@RequestMapping(value=("login"),method=RequestMethod.POST)
public String login(@RequestParam("name")String name,@RequestParam("pass")String pass,@RequestParam("gName")String gName,HttpSession session
) {
User u1=new User();
u1.setName(name);
u1.setgName(gName);
u1.setPass(pass);
// dao.save(u1);
// return "welcome";
String vl="rtl";
String js="/resources/js/rtl.js";
if(vl.equalsIgnoreCase("rtl"))
{
js="/resources/js/rtl.js";
}
session.setAttribute("js", js);
// " rel="stylesheet">
//
User u2=dao.findById(name);
if(u2!=null)
{
if(u1.getPass().equals(u2.getPass())&&u1.getgName().equals(u2.getgName()))
{
session.setAttribute("user", u1);
return "welcome";
}
else
{
return "error";
}
}
else
{
return "error";
}
}
@RequestMapping(value="startProcess",method=RequestMethod.GET)
public String startProcess(HttpSession session) {
System.out.println("starting new process");
Mapvariables=new HashMap();
variables.put("name", "true");
processEngine.getRepositoryService().createDeployment().addClasspathResource("myProcess.bpmn20.xml").deploy();
processEngine.getRuntimeService().startProcessInstanceByKey("myProcess",variables);
User user=(User)session.getAttribute("user");
//processEngine.getRuntimeService().setVariablesLocal("vars", variables);
// processEngine.getRuntimeService().setVariables("var", variables);
session.setAttribute("processEngine", processEngine);
return "myTask";
}
@RequestMapping(value="myTasks",method=RequestMethod.GET)
public String myTasks(HttpSession session) {
//System.out.println("starting new process");
User user=(User)session.getAttribute("user");
session.setAttribute("processEngine", processEngine);
return "myTask";
}
@RequestMapping(value="claim",method=RequestMethod.GET)
public String claim(@RequestParam("id")String id,HttpSession session) {
User user=(User)session.getAttribute("user");
processEngine.getTaskService().claim(id,user.getName());
return "myTask";
}
@RequestMapping(value="complete",method=RequestMethod.GET)
public String complete(@RequestParam("id")String id,HttpSession session) {
User user=(User)session.getAttribute("user");
processEngine.getTaskService().complete(id);
return "myTask";
}
}
JSPs
index.jsp
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <body> <h2>Hello World! gk1</h2> <center> <br> <form method="post" action="login"> <input type="text" name="name"> <br><br> <input type="password" name="pass"> <br><br> <select name="gName"> <option>m</option> <option>c</option> </select> <br><br><br> <input type="submit"> </form> </center> </body> </html>
welcome.jsp
<%@page import="com.gk.dao.User"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <% String myvar=(String)session.getAttribute("js"); %> <link href="<c:url value="/resources/css/rtl.css" />" rel="stylesheet"> <script src=<c:url value="<%=myvar %>" />></script> </head> <body> Welcome <% User user=(User)session.getAttribute("user"); if(user!=null) { out.print(user.getName()); } %> <%= session.getAttribute("js") %> <c:catch> </c:catch> <a href="startProcess">Start Process</a> <a href="myTasks">MyTasks</a> </body> </html>
mytask.jsp
<%@page import="org.activiti.engine.ProcessEngine"%> <%@page import="org.activiti.engine.task.Task"%> <%@page import="java.util.List"%> <%@page import="com.gk.dao.User"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> your tasks <% User user=(User)session.getAttribute("user"); ProcessEngine processEngine=(ProcessEngine)session.getAttribute("processEngine"); List<Task>tasks=processEngine.getTaskService().createTaskQuery().taskCandidateGroup(user.getgName()).list(); out.print("<br>"); out.print("Tasks in your group"); for(Task t:tasks) { out.print("<br>Id:"+t.getId()+"Name:"+t.getName()+"<a href='claim?id="+t.getId()+"'>Claim it</a>"); } out.print("<br>"); out.print("Your tasks"); List<Task>myTasks=processEngine.getTaskService().createTaskQuery().taskAssignee(user.getName()).list(); for(Task t:myTasks) { out.print("<br>Id:"+t.getId()+"Name:"+t.getName()+"<a href='complete?id="+t.getId()+"'>Complete it</a>"); } %> </body> </html>
No comments:
Post a Comment