集成Mycelipse
一、下载
下载地址:http://nchc.dl.sourceforge.net/s ... pdl-suite-3.2.2.zip
这个文件是目前最新版,包括了JBPM的所有东西,当然也包括了设计器。
二、安装jbpm
将这个包解压到D:/jbpm-jpdl-3.2.2。
三、安装jbpm designer
第一步:在MyEclipse的根目录下建立一个叫jbpmdesigner的文件夹。如图。
第二步:将D:/jbpm-jpdl-3.2.2/designer下的eclipse目录(links除外)复制到jbpmdesigner下
第三步:在C:/MyEclipse8.6/eclipse/links下新建一个文件,叫jbmpdesigner.link,这是一个文件文件,用文本编辑器打开,加入以下内容:
path=jbpmdesigner
这里的内容就是指向刚才新建的那个目录。这实际上是一种eclipse的插件安装方式,这种方式可以避免所有的包全放在一起而引起冲突。
五、卸载
如果你想卸载,将刚才新建的那个目录以及文件全部删除即可。
解决Myeclipse的gpd.xml报乱码错
<?xml version="1.0" encoding="UTF-8"?>改成<?xml version="1.0" encoding="utf-8"?>
集成Eclipse
一.eclipse与JBPM整合的方法就是在eclipse中的links目录中新建一个.link为后缀的文件。
内容为:
path=E:\\jbpm-jpdl-suite-3.2.3\\jbpm-jpdl-3.2.3\\designer
二.其中designer下必须有eclipse文件夹
JBPM整合SSH
第一步:创建数据库表
1、COPY依赖包:bsh.jar/jcr-1.0.jar/jbpm-identity.jar/jbpm-jpdl.jar
2、将jbpm中的映射资源添加到配置文件中(spring配置文件,applicationContext.xml)
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>org/jbpm/db/hibernate.queries.hbm.xml</value>
<value>........................................</value>
</list>
</property>
</bean>
3、将hibernate.cache.provider_class属性(org.hibernate.cache.HashtableCacheProvider)添加到配置文件中
<prop key="hibernate.hbm2ddl.auto">update</prop> <!--自动创建表-->
<prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
4、避免使用User类名的冲突
因为Jbpm中的User类可能与工程当中的User类在名称上有冲突,因此定义User的映射时,指定@Entiry注解的name属性为全路径类名。
在定义了name属性之后,凡是查询User对象的MQL语句,都需要使用这个全路径类名(名句.类名)
----------------------------------------------------------------------------------------------------------------
第二步:与spring集成
1、集成spring与JBPM,需要用到第三方的类库spring-modules-0.8.zip
2、将其中的spring-modules-jbpm31.jarCOPY到web-inf/lib下面即可
3、集成JBPM与spring的方法是:将JbpmConfiguration对象交给Spring来创建
4、所以,需要在spring配置文件里面配置JbpmConfiguration对象的创建
<!-- 与spring集成与jbpm,需要下载第三方类库spring-modules-.8.zip -->
<bean id ="jbpmconfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="configuration" value="classpath:jbpm.cfg.xml"></property>
</bean>
5、这个时候,需要拷贝jbpm.cfg.xml到类路径中(WEB-INF目录下)
可以从jbpm-jpdl-suite-3.2.3\jbpm-jpdl-3.2.3\src\jpdl\org\jbpm目录中拷贝(default.jbpm.cfg.xml)文件,并重命名即可(去掉default)。
----------------------------------------------------------------------------------------------------------------------------------
第三步:如何实现业务逻辑类
1、用到jbpmConfuguration的时候,需要注入
@Component
public class JbpmFacadeImpl extends HibernateDaoSupport implements JbpmFacade {
//得到JbpmConfiguration
private JbpmConfiguration jbpmConfiguration;
public void setJbpmConfiguration(JbpmConfiguration jbpmConfiguration) {
this.jbpmConfiguration = jbpmConfiguration;
}
2、当我们使用JbpmContext对象来操纵Jbmp的时候,需要将JbpmContext内部的Hibernate session对象设置为当前的hibernate session对象
private JbpmContext getJbpmContext()
{
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
JbpmContext context = jbpmConfiguration.createJbpmContext();
context.setSession(getSession());
return context;
}
3、当我们使用jbpmContext操纵JBPM数据结束的时候,注意不要关闭jbpmContext!!!!
发送E_mail
-----------------------------JAMESS相关--------------------------
安装与运行
1、James是一个开源的邮件服务器程序,现在使用的版本是james-2.3.1
2、解压之后,首先运行bin/run.bat
3、如果想要修改相关的配置文件,请先停止james,然后到:apps\james\SAR-INF\config.xml中
4、config.xml文件可以修改,比如SMTP端口号等信息
管理
1、cmd命令-----------------telnet localhost 4555,并输入默认用户名/密码(root/root)
2、输入adduser username password ----添加用户。例adduser cs cs;
3、qurit退出
---------------------------JBPM相关--------------------------------
1、需要activation.jar和mail.jar依赖包加入到类路径
2、由于JBPM有些BUG,需要加上MailAction的hibernate映射配置(MailAction.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-mapping default-access="field">
<subclass name="org.jbpm.graph.action.MailAction" discriminator-value="M" extends="org.jbpm.graph.def.Action"></subclass>
</hibernate-mapping>
3、如查SMTP主机的端口不是默认端口25,则需要jbpm.cfg.xml中如下配置删除:
<string name="jbpm.mail.smtp.host" value="localhost" />
并插入新的配置
<string name="resource.mail.properties" value="mail.properties" />
并在类路径中添加mial.properties文件,在这个文件中,可以设置主机和SMTP端口;
mail.host=localhost
mail.smtp.port=255
4、可以分别在不同的Action中发送EMail;
如:
<event type="node-enter">
<mail to="cs@localhost" subjuect="hello" text="something" />
</event>
或:
<task name="tom审批">
<assignment actor-id="cs" />
<event type="task-assign">
<mail template="task-assign" />
</event>
</task>
上述例子中:
- 第一个例子直接在流程定义文件中指定要发送的目标地址,主题和内容
- 第二个例子则将这些信息转移到了一个名为"task-assign"的模板配置中,模板文件由jbpm.cfg.xml中的
<string name="resource.mail.templates" value="jbpm.mail.templates.xml" />
配置来决定的。在这里,模板文件是jbpm.mail.templates.xml,并需放置到类路径根目录下,举例:
<mail-templates>
<!--<variable name="BaseTaskListURL" value="http://localhost:8080/jbpm/home?taskId=" />-->
<mail-template name='task-assign'><!--邮件模板名称,可定义多个 -->
<actors>#{taskInstance.actorId}</actors>
<to>#{taskInstance.actorId}@localhost</to>
<subject>Task '#{taskInstance.name}'</subject>
<text><![CDATA[Hi,
Task '#{taskInstance.name}' has been assigned to you.
Go for it: #{BaseTaskListURL}#{taskInstance.id}
Thanks.
---powered by JBoss jBPM---]]></text>
</mail-template>
<mail-template name='task-reminder'><!--邮件模板名称,可定义多个 -->
<actors>#{taskInstance.actorId}</actors>
<subject>Task '#{taskInstance.name}' !</subject>
<text><![CDATA[Hey,
Don't forget about #{BaseTaskListURL}#{taskInstance.id}
Get going !
---powered by JBoss jBPM---]]></text>
</mail-template>
<mail-template name='task-mail'><!--邮件模板名称,可定义多个 -->
<actors>#{taskInstance.actorId}</actors>
<to>#{taskInstance.actorId}@localhost</to>
<subject>公文【#{doc_title}】正在等待您的审批....</subject>
<text>
<![CDATA[ 您好,公文【#{doc_title}】已转交到您的手上,请尽快审批,谢谢!]]>
</text>
</mail-template>
</mail-templates>