国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
SPRING+HIBERNATE3+JBPM+OC4J

 

整合SPRING與JBPM核心就是需要將JBPM的BEAN由SPRING來(lái)管理利用IOC來(lái)展現(xiàn)SPRING框架的優(yōu)勢(shì)!

這2天在研究怎樣整合兩者!在整合過(guò)程中也出現(xiàn)了不少意想不到的問(wèn)題!在這里記錄下來(lái)希望可以未對(duì)此感興趣的朋友提供些幫助!

SPRING+JBPM

1)下載SPRING-JBPM MODULE

這個(gè)模塊是SPRING支持JBPM使用的必要模塊!現(xiàn)在還沒(méi)有放入SPRING的發(fā)行版本中!不過(guò)通過(guò)她基本可以實(shí)現(xiàn)了對(duì)JBPM的操作!代碼需要從SPRING的CVS下載

地址是:pserver:anonymous@cvs.sourceforge.net:/cvsroot/springframework

從中獲取SPRING-JBPM MODULE即可.

2)SPRING加載JBPM資源

SPRING-CONFIG.XML(部分)

數(shù)據(jù)源
 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" destroy-method="close">
  <property name="jndiName" value="jdbc/jbpm"/>
 </bean>

HIBERNATE SESSION FACTORY

 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref local="dataSource" />
  </property>
  注意這里由于我使用的JBPM是以JAR的形式存在于CLASSPATH中的所以當(dāng)加載其中的HIBERNATE實(shí)體描述文件的時(shí)候需要使用下面的寫(xiě)法
  <property name="mappingJarLocations">
   <list>
    <value>WEB-INF/lib/jbpm-3.0.1.jar</value>
    <value>WEB-INF/lib/jbpm-identity-3.0.1.jar</value>
   </list>
  </property>
  
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
    <prop key="hibernate.show_sql">true</prop>

為了使HIBERNATE3查詢的時(shí)候使用正確的語(yǔ)法需要指明查詢工廠類(lèi),如果不指定回出現(xiàn)

ClassNotFoundException: org.hibernate.hql.ast.HqlToken  的錯(cuò)誤!

    <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
   </props>
  </property>
 </bean>
 
 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref local="sessionFactory"/>
  </property>
 </bean>


 下面紅色的部分是SPRING管理JBPM的必要配置!里面的JBPMTEMPLATE是很重要的類(lèi)

SPRING中使用JBPM基本都是通過(guò)她來(lái)完成的!
 <bean id="hibernateConfiguration" factory-bean="&sessionFactory" factory-method="getConfiguration"/>

    <bean id="jbpmSessionFactory" class="org.springframework.workflow.jbpm.LocalJbpmSessionFactoryBean">
        <property name="hibernateSessionFactory" ref="sessionFactory"/>
        <property name="hibernateConfiguration" ref="hibernateConfiguration"/>
    </bean>
   
    <bean id="jbpmTemplate" class="org.springframework.workflow.jbpm.JbpmTemplate">
        <property name="jbpmSessionFactory" ref="jbpmSessionFactory"/>
    </bean>

這是JBPM的管理既納入到了SPRING中!

3)使用SPRING操作JBPM

在我們的類(lèi)中需要調(diào)用JBPM的功能時(shí)我們只需要將JBPMTEMPATE類(lèi)注入到我們的類(lèi)中

在jbpmTemplate中實(shí)現(xiàn)了不多的幾個(gè)方法,有很多JBPM的方法沒(méi)有實(shí)現(xiàn)不過(guò)沒(méi)關(guān)系我們可以使用SPRING中最常見(jiàn)的CALLBACK機(jī)制來(lái)實(shí)現(xiàn)我們的需要,下面舉出幾個(gè)例子:

A)保存流程定義方法

利用SPRING將jbpmTemplate注入進(jìn)我們的類(lèi)中

private JbpmTemplate jbpmTemplate = null;

 public void setJbpmTemplate(JbpmTemplate jbpmTemplate) {
  this.jbpmTemplate = jbpmTemplate;
 }

 /**
  * 保存流程定義
  * @param xmlStr 流程定義的JPDL的XML字符串形式
  */
 public void saveWorkFlowDefinition(String xmlStr){
  
  log.debug("saveWorkFlowDefinition start");
  
  final ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(xmlStr);
  //call spring jbpm call back for save processdefinition
        jbpmTemplate.execute(new JbpmCallback(){       
            public Object doInJbpm(JbpmSession jbpmSession){
             jbpmSession.beginTransaction();
                GraphSession gSession = jbpmSession.getGraphSession();
                gSession.saveProcessDefinition(processDefinition);
                jbpmSession.commitTransaction();//這里我們只需要提交事物即可!關(guān)閉SESSION的工作JBPMTEMPLATE回幫助我們完成!
                return processDefinition;
            }});
  log.debug("saveWorkFlowDefinition end");
 }

B)取得所有的流程定義:

/**
  * 取得所有的工作流定義
  * @return 工作流定義列表
  */
 public List getAllWorkFlow(){
  
  log.debug("getAllWorkFlow start");
  List list = (List)jbpmTemplate.execute(new JbpmCallback(){       
         public Object doInJbpm(JbpmSession jbpmSession){
       GraphSession graphSession = jbpmSession.getGraphSession();
       log.debug("getAllWorkFlow end");  
       List tempList = graphSession.findAllProcessDefinitions();
       return tempList;
         }});
   log.debug("getAllWorkFlow end");
  return list;
  
 }

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Mule+Spring+jbpm
jbpm開(kāi)發(fā)指南3
Hello World 例子---jbpm(摘抄)
JBPM4.4與SSH2的整合
spring面試題
解決jbpm4.4和spring多數(shù)據(jù)源的問(wèn)題【轉(zhuǎn)】
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服