江巅 2011-05-26
建Web 工程。导入java包 其中包括ssh所依赖的jar包 和jbpm.jar 和jbpm4.4/lib下的所有jar 包
其中与tomcat 6.0 有冲突 的解决办法网上有。这里就不多说了
在jbpm-4.4\install\src\db\create 文件夹中找到对应数据库的建表语句。然后去数据库执行.
1.编写spring 的配置文件 applicationContext_base.xml
建立sessionFactory 这里要要用到jbpm.hibernate.cfg.xml
jbpm.hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="hibernate.connection.url">jdbc:oracle:thin@localhost:1521:orcl</property> <property name="hibernate.connection.username">alex</property> <property name="hibernate.connection.password">vallen</property> <property name="hibernate.format_sql">true</property> <mapping resource="jbpm.repository.hbm.xml" /> <mapping resource="jbpm.execution.hbm.xml" /> <mapping resource="jbpm.history.hbm.xml" /> <mapping resource="jbpm.task.hbm.xml" /> <mapping resource="jbpm.identity.hbm.xml" /> </session-factory> </hibernate-configuration>
applicationContext_base.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" lazy-init="default" autowire="default" dependency-check="default"> <property name="jbpmCfg"> <value>jbpm.cfg.xml</value> </property> </bean> <bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" /> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:jbpm.hibernate.cfg.xml</value> </property> </bean> </beans>
2.spring 与 jbpm整合
在src下建一个 jbpm.cfg.xml 代码如下
<?xml version="1.0" encoding="UTF-8"?> <jbpm-configuration> <import resource="jbpm.default.cfg.xml" /> <import resource="jbpm.businesscalendar.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.console.cfg.xml" /> <!-- Job executor is excluded for running the example test cases. --> <!-- To enable timers and messages in production use, this should be included. --> <!-- <import resource="jbpm.jobexecutor.cfg.xml" /> --> <!-- 这里说明一下,默认的路径是classpath 所以必须加上xml的路径 如果 直接 写成 value ="/WEB-INF/config/applicationContext_base.xml" 会从classpath目录开始找起 到最后会是找不到的。 所以。必须用相对路径--> <process-engine-context> <string name="spring.cfg" value="../../WEB-INF/config/applicationContext_base.xml" /> </process-engine-context> <import resource="jbpm.mail.templates.xml"></import> </jbpm-configuration>
其中在src下还有两个关于mail的配置 jbpm.mail.templates.xml 和 jbpm.mail.properties
jbpm.mail.templates.xml
<?xml version="1.0" encoding="UTF-8"?> <jbpm-configuration> <process-engine-context> <mail-template name='task-notification'> <to users="${task.assignee}"/> <subject>${task.name}</subject> <text><![CDATA[Hi ${task.assignee}, Task "${task.name}" has been assigned to you. ${task.description} Sent by jBPM]]></text> </mail-template> <mail-template name='task-reminder'> <to users="${task.assignee}"/> <subject>${task.name}</subject> <text><![CDATA[Hey ${task.assignee}, Do not forget about task "${task.name}". ${task.description} Sent by jBPM]]></text> </mail-template> <mail-template name="rectify-template"> <to addresses="${addressee}" /> <cc users="bb" groups="innerparty" /> <bcc groups="thinkpol" /> <subject>rectify ${newspaper}</subject> <text>${newspaper} ${date} ${details}</text> </mail-template> </process-engine-context> </jbpm-configuration>
jbpm.mail.porperties
mail.smtp.host localhost mail.smtp.port 2525 mail.from [email protected]
到这里启动tomcat 会报错。
原因是jbpm 要配置事务
可以在applicationContext_base.xml中加下事务配置
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="del*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="*" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* com.vallen.dao.impl.ScheduleDAOImpl.*.*(..))" /> <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" /> </aop:config>
到此配置 完毕。直接写例子测试吧
如果有需要已经配置好的完整工程的。可以留下你们的邮箱