<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    子在川上曰

      逝者如斯夫不舍晝夜
    隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0
    數(shù)據(jù)加載中……

    jBPM開發(fā)入門指南(5)

    前篇說起要講在JBPM中實現(xiàn)用戶權(quán)限,但這段時間比較忙,一直拖著。這里先把jbpm自帶的websale例子放上來,大伙先將就看看。這個例子我已經(jīng)把它抽取了出去,網(wǎng)頁部份丟棄了。在看的時候主要看WebsaleTest.java,看看它的用戶權(quán)限是怎么用的。

    幾個重點:
    (1) jBPM沒有角色的概念!!! 很多人把ActorID理解成角色,那是相當(dāng)錯誤的。jBPM只有參與者的概念,也就是ActorID,它可以是用戶ID,也可以是角色ID,也可以什么都不是。你要自己去把用戶角色等東東和ActorID映射起來。不過一般我們把ActorID設(shè)置成角色,但jbpm websale卻是設(shè)置成用戶的。
    (2)用戶信息的入口是JbpmContext,里面有一個setActorID方法。你用戶登錄時候,把一些用戶信息set進去。
    (3)泳道概念:你去看看UML中的帶泳道的活動圖,那就是象一個游泳池里的泳道一樣。


    安裝提示:
    ?<classpathentry kind="con" path="JBPM/jBPM 3.1.2"/>
    .classpath的這一句很可能和你電腦的設(shè)置不符,這是jbpm插件的一個設(shè)置,指向jbpm的HOME目錄,以便找到j(luò)bpm的jar包。你按照你電腦上的設(shè)置相應(yīng)修改一下這一行。


    websale的eclipse項目ZIP包:http://m.tkk7.com/Files/chengang/chen-jbpm_websale.zip

    posted on 2006-09-16 19:09 陳剛 閱讀(33691) 評論(22)  編輯  收藏 所屬分類: jBPM

    評論

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    哈哈。。看看哈~~
    2006-09-18 09:06 | ktm

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    說實在的,這些都沒有太大用,我看JBPM都能看到這些內(nèi)容,關(guān)鍵是具體跟業(yè)務(wù),具體組織架構(gòu)聯(lián)系在一起時怎么處理,有些系統(tǒng)是完全基于工作流系統(tǒng)(連表單也是工作流產(chǎn)生),業(yè)務(wù)附屬于工作流,但大的業(yè)務(wù)系統(tǒng)不可能這么作的,工作流應(yīng)該為業(yè)務(wù)服務(wù),這是我的愚見,也是我的困惑!
    2006-09-22 11:11 | ivor

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    陳大哥, 問個問題,我看了你的這幾篇入門指南之后,照你的步驟運行了一下,大致都還算順利.但是每次在調(diào)用JbpmContext.close();方法的時候,總是會拋出異常:
    NewPooledConnection : A Throwable occurred while trying to reset the typeMap property of our Connection to Collections.EMPTY_MAP!
    java.sql.SQLException: The Connection.setTypeMap(Map) method is not implemented.
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.notImplemented(ConnectionJDBC2.java:1519)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.setTypeMap(ConnectionJDBC2.java:2123)
    是什么原因呢,是jtds包的版本不對嗎?
    2006-09-27 17:49 | xiaoshi

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    另外,我看了下ConnectionJDBC2.java里面的代碼,其中setTypeMap方法如下:
    public void setTypeMap(Map map) throws SQLException {
    checkOpen();
    notImplemented("Connection.setTypeMap(Map)");
    }
    它里面調(diào)用了notImplemented方法,而notImplemented方法是這樣的:
    /**
    * Reports that user tried to call a method which has not been implemented.
    *
    * @param method the method name to report in the error message
    * @throws SQLException always, with the not implemented message
    */
    static void notImplemented(String method) throws SQLException {
    throw new SQLException(
    Messages.get("error.generic.notimp", method), "HYC00");
    }
    看注釋的意思是調(diào)用了一個還沒有實現(xiàn)的方法,為什么會出現(xiàn)這種情況呢??
    從JbpmContext.close()方法,調(diào)用棧如下:
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.notImplemented(ConnectionJDBC2.java:1519)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.setTypeMap(ConnectionJDBC2.java:2123)
    at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:290)
    at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:247)
    at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:1148)
    at org.hibernate.connection.C3P0ConnectionProvider.closeConnection(C3P0ConnectionProvider.java:42)
    at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:343)
    at org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:298)
    at org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:187)
    at org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:213)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:119)
    at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:162)
    at org.jbpm.svc.Services.close(Services.java:211)
    at org.jbpm.JbpmContext.close(JbpmContext.java:139)
    調(diào)用到最后,總會調(diào)用到ConnectionJDBC2.notImplemented來, 難道是某些包版本不對?
    2006-09-27 17:56 | xiaoshi

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    流程中如果有action和assignment,其所對應(yīng)的class會使用jbpm的ProcessClassLoader來加載,根據(jù)上一篇提到的,如果在class A 中引用了 class B, 則B會使用加載class A的加載器來加載B,而不是Thread.currentThread().getContextClassLoader()來加載.這樣,如果在action的class中使用我們自己的類,則這些類還是會使用jbpm的ProcessClassLoader來加載,而不是Thread.currentThread().getContextClassLoader(),這樣如果沒有把這些類和jbpm的流程定義一起部署,運行時很有可能會找不到這些類,特別是,如果我們自己的代碼里面如果又引用了其他的資源,比如spring,hibernate之類的,如果把這些連同jbpm流程定義一起部署,感覺有些不爽.比如說,在web應(yīng)用開發(fā)中,一般會把我們自己開發(fā)的jar放到WEB-INF/lib目錄下,這樣運行時會由org.apache.catalina.WebappClassLoader 來加載.但是如果按照jbpm的弄法,由它來加載我們所寫的類,則它不會從WEB-INF/lib去加載類,這似乎不是我們所想要的.

    所以我最后考慮了一下,將其ProcessClassLoader的findClass方法改寫了,不知會不會引起什么bug,望有高人指點一二,代碼如下:

    public Class findClass(String name) throws ClassNotFoundException {
    Class clazz = null;

    ClassLoader classLoader = Thread.currentThread()
    .getContextClassLoader();
    clazz = classLoader.loadClass(name);

    return clazz;
    }


    這樣我們自己寫的類放在WEB-INF/lib目錄下,運行時會由org.apache.catalina.WebappClassLoader 來加載進來,這樣似乎是我們所想要達到的目的.

    2006-11-26 21:15 | guanqi

    # 關(guān)于weblogic上配置jbpm問題  回復(fù)  更多評論   

    大哥你好,你在weblogic814配置過jbpm3.1嗎,我怎么配都不行,主要錯誤如下,能我一點指導(dǎo)嗎,先謝了。
    org.hibernate.HibernateException: Errors in named queries: GraphSession.findAllProcessDefinitionVersions, SchedulerSession.findTimersByName, MessagingSession.resumeMessagesForToken, GraphSession.selectLogsForTokens, GraphSession.findTokensForProcessInstance, TaskMgmtSession.findTaskInstancesByIds, MessagingSession.findMessages, SchedulerSession.findSuspendedTimers, LoggingSession.findLogsByToken, MessagingSession.suspendMessagesForToken, TaskMgmtSession.findTaskInstancesByActorId, SchedulerSession.resumeTimersForToken, TaskMgmtSession.findPooledTaskInstancesByActorId, TaskMgmtSession.findTaskInstancesByTokenId, SchedulerSession.suspendTimersForToken, GraphSession.findAllProcessInstancesForADefinition, GraphSession.findProcessDefinitionByNameAndVersion, MessagingSession.findErrorMessages, SchedulerSession.deleteTimersForProcessInstance, TaskMgmtSession.findPooledTaskInstancesByActorIds, SchedulerSession.findFailedTimers, GraphSession.findLatestProcessDefinitionQuery, SchedulerSession.findTimersByDueDate, TaskMgmtSession.findTaskInstancesByActorIds, GraphSession.findAllProcessDefinitions
    at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:338)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1154)
    at org.jbpm.persistence.db.DbPersistenceServiceFactory.getSessionFactory(DbPersistenceServiceFactory.java:90)
    at org.jbpm.persistence.db.DbPersistenceService.getSessionFactory(DbPersistenceService.java:74)
    at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:79)
    at org.jbpm.persistence.db.DbPersistenceService.getGraphSession(DbPersistenceService.java:216)
    at org.jbpm.JbpmContext.getGraphSession(JbpmContext.java:427)

    2006-12-28 14:26 | poplar

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    說實在的,這些都沒有太大用,我看JBPM都能看到這些內(nèi)容,關(guān)鍵是具體跟業(yè)務(wù),具體組織架構(gòu)聯(lián)系在一起時怎么處理,有些系統(tǒng)是完全基于工作流系統(tǒng)(連表單也是工作流產(chǎn)生),業(yè)務(wù)附屬于工作流,但大的業(yè)務(wù)系統(tǒng)不可能這么作的,工作流應(yīng)該為業(yè)務(wù)服務(wù),這是我的愚見,也是我的困惑! 經(jīng)典!!!!!!!!!!!
    2007-01-12 10:30 | odexuce

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    這個例子我已經(jīng)把它抽取了出去,網(wǎng)頁部份丟棄了。在看的時候主要看WebsaleTest.java??????



    好像人家源代碼包里 本來就有這個 單元測試 不用你去 抽取吧?????
    2007-03-20 13:55 | Silence

    # re: jBPM開發(fā)入門指南(5) [未登錄]  回復(fù)  更多評論   

    說實在的,這些都沒有太大用,我看JBPM都能看到這些內(nèi)容,關(guān)鍵是具體跟業(yè)務(wù),具體組織架構(gòu)聯(lián)系在一起時怎么處理,有些系統(tǒng)是完全基于工作流系統(tǒng)(連表單也是工作流產(chǎn)生),業(yè)務(wù)附屬于工作流,但大的業(yè)務(wù)系統(tǒng)不可能這么作的,工作流應(yīng)該為業(yè)務(wù)服務(wù),這是我的愚見,也是我的困惑! 經(jīng)典
    2007-05-24 10:48 | zz

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    說實在的,這些都沒有太大用,我看JBPM都能看到這些內(nèi)容,關(guān)鍵是具體跟業(yè)務(wù),具體組織架構(gòu)聯(lián)系在一起時怎么處理,有些系統(tǒng)是完全基于工作流系統(tǒng)(連表單也是工作流產(chǎn)生),業(yè)務(wù)附屬于工作流,但大的業(yè)務(wù)系統(tǒng)不可能這么作的,工作流應(yīng)該為業(yè)務(wù)服務(wù),這是我的愚見,也是我的困惑! 經(jīng)典
    確實沒啥用。不知道陳剛大哥能不能給個實際應(yīng)用的案例,而不是這些demo,太沒價值了。
    2007-07-04 15:30 | flash

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    你好陳剛老師。我一直在學(xué)習(xí)jbpm技術(shù)。現(xiàn)在我已經(jīng)能寫一個簡單的工作流程了。但是我還是不會用fork和join怎么使用。你能給我講解下他們的使用么?謝謝。也希望老師能給我些指點,接下來我該怎么學(xué)習(xí)?謝謝!!
    2008-01-27 08:56 | wangyoulin006

    # re: jBPM開發(fā)入門指南(5) [未登錄]  回復(fù)  更多評論   

    關(guān)于這個例子的介紹文字太少了點吧,環(huán)境也沒寫。配置起來還報錯,弄了半天。
    而且連跑的是哪個流程都不知道,leavel1,leavel2,leavel3,試了1不可以
    2008-04-07 15:25 | leon

    # re: jBPM開發(fā)入門指南(5) [未登錄]  回復(fù)  更多評論   

    有沒有和具體的開發(fā)全過程啊,最好寫一個jbpm和tomcat開發(fā)實例,包括環(huán)境配置和數(shù)據(jù)庫配置的,謝謝了!
    2008-08-11 16:38 | sky

    # re: jBPM開發(fā)入門指南(5) [未登錄]  回復(fù)  更多評論   

    JBPM與Ibatis結(jié)合么樣弄啊?
    2009-01-11 18:26 | Simple

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    您好,我遇到一個問題,不知道您能不能幫助我一下,呵呵
    一個主流程下有多個子流程,至少5個,而每個子流程都是一樣的流程定義,就是有多個部門分別去執(zhí)行子流程,最后再匯總到主流程,這樣的結(jié)構(gòu)應(yīng)該怎么定義流程呢?而每個子流程又是很大的,總不能將這些一模一樣的子流程都定義在主流程中把?有沒有那種類似會簽的結(jié)構(gòu)?哎,很困擾我啊,這個星期必須搞定,剛參加工作壓力挺大的
    2009-03-11 12:48 | 李慧芬

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    很經(jīng)典,謝謝
    2009-03-23 18:41 | rianpeny

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    李慧芬 同學(xué),用Fork和join節(jié)點呀
    2009-04-14 17:51 | unamed

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    初學(xué),謝謝,敬禮,
    2009-06-26 09:04 | qimiao

    # re: jBPM開發(fā)入門指南(5) [未登錄]  回復(fù)  更多評論   

    結(jié)構(gòu)清析,是個入門的東東吧。
    2009-06-29 19:14 | x

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    那個在jpdl.xml文件中,我要請假,前面的空格給去了,運行時就不對,我又給加了空格,但是再運行還是不行,最后在Test里把空格給去掉了。
    把這個走了一遍,花費了好一會兒,我想找個web開發(fā)的例子,沒有找到。想做個跟那個server一樣的例子。在網(wǎng)上大部分都是java的開發(fā)包,還是那種我不熟悉的格式。

    把那個ehcache.1.1.jar包給換成ehcache1.2.3.jar包就沒出錯了。終于連上
    mysql了。你做沒沒做web的例子,給傳個?
    2009-08-15 17:34 | zw

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    你好,我有一個問題,我想用jpbm流程進行編排,但是中間的活動要用到一些原來c程序中的發(fā)出的socket消息,我有什么辦法實現(xiàn)呢
    2011-08-23 15:07 | llcf

    # re: jBPM開發(fā)入門指南(5)   回復(fù)  更多評論   

    @xiaoshi
    驅(qū)動問題,用MICROSOFT的就沒有此問題
    2011-09-01 17:06 |
    主站蜘蛛池模板: 国产精品黄页在线播放免费| 亚洲成人在线免费观看| 国产99视频免费精品是看6| 亚洲经典千人经典日产| 无人在线观看免费高清视频| 亚洲一卡2卡3卡4卡国产网站| 久久国产精品2020免费m3u8| 亚洲av永久无码精品表情包| 九九美女网站免费| 亚洲AV无码不卡无码| 无码人妻丰满熟妇区免费| 亚洲国产精品国自产拍电影| 久久ww精品w免费人成| 亚洲国产夜色在线观看| 免费在线观看的网站| 男人的天堂av亚洲一区2区| 国产国产成年年人免费看片| 四虎国产精品成人免费久久| 中文字幕亚洲日韩无线码| 西西人体免费视频| 亚洲高清免费在线观看| aa级一级天堂片免费观看| 亚洲aⅴ无码专区在线观看春色| 免费在线观看理论片| 国产又黄又爽胸又大免费视频| 久久久综合亚洲色一区二区三区| 黄在线观看www免费看| 亚洲欧洲无码AV不卡在线| 亚洲国产人成中文幕一级二级| 皇色在线免费视频| 亚洲视屏在线观看| 免费看大黄高清网站视频在线| 一二三四在线观看免费中文在线观看| 亚洲精品蜜桃久久久久久| 亚洲人成在线免费观看| 亚洲AⅤ男人的天堂在线观看| 国产精品亚洲一区二区三区在线 | 亚洲天堂免费在线视频| 久久青草91免费观看| 亚洲成a人无码亚洲成av无码 | 亚洲区小说区激情区图片区|