jbpm集成myeclipse、eclipse以及与SSH的整合

集成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>

猜你喜欢

转载自technicalsearch.iteye.com/blog/1505872