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

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

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

    子在川上曰

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

    jBPM開發入門指南(5)

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

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


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


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

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

    評論

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

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

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

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

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

    陳大哥, 問個問題,我看了你的這幾篇入門指南之后,照你的步驟運行了一下,大致都還算順利.但是每次在調用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開發入門指南(5)   回復  更多評論   

    另外,我看了下ConnectionJDBC2.java里面的代碼,其中setTypeMap方法如下:
    public void setTypeMap(Map map) throws SQLException {
    checkOpen();
    notImplemented("Connection.setTypeMap(Map)");
    }
    它里面調用了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");
    }
    看注釋的意思是調用了一個還沒有實現的方法,為什么會出現這種情況呢??
    從JbpmContext.close()方法,調用棧如下:
    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)
    調用到最后,總會調用到ConnectionJDBC2.notImplemented來, 難道是某些包版本不對?
    2006-09-27 17:56 | xiaoshi

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

    流程中如果有action和assignment,其所對應的class會使用jbpm的ProcessClassLoader來加載,根據上一篇提到的,如果在class A 中引用了 class B, 則B會使用加載class A的加載器來加載B,而不是Thread.currentThread().getContextClassLoader()來加載.這樣,如果在action的class中使用我們自己的類,則這些類還是會使用jbpm的ProcessClassLoader來加載,而不是Thread.currentThread().getContextClassLoader(),這樣如果沒有把這些類和jbpm的流程定義一起部署,運行時很有可能會找不到這些類,特別是,如果我們自己的代碼里面如果又引用了其他的資源,比如spring,hibernate之類的,如果把這些連同jbpm流程定義一起部署,感覺有些不爽.比如說,在web應用開發中,一般會把我們自己開發的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

    # 關于weblogic上配置jbpm問題  回復  更多評論   

    大哥你好,你在weblogic814配置過jbpm3.1嗎,我怎么配都不行,主要錯誤如下,能我一點指導嗎,先謝了。
    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開發入門指南(5)   回復  更多評論   

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    很經典,謝謝
    2009-03-23 18:41 | rianpeny

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

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

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

    初學,謝謝,敬禮,
    2009-06-26 09:04 | qimiao

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

    結構清析,是個入門的東東吧。
    2009-06-29 19:14 | x

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

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

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

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

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

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

    @xiaoshi
    驅動問題,用MICROSOFT的就沒有此問題
    2011-09-01 17:06 |
    主站蜘蛛池模板: 久久国产精品免费视频| 免费在线观看日韩| 亚洲91av视频| 爱丫爱丫影院在线观看免费| 亚洲一区二区三区无码中文字幕| 香蕉视频免费在线| 亚洲高清成人一区二区三区| 一级毛片免费一级直接观看| 亚洲精品国产综合久久一线| 香蕉免费在线视频| 亚洲人精品午夜射精日韩| 免费观看成人久久网免费观看| 亚洲国产精品线在线观看| 99热这里只有精品免费播放| 亚洲一级毛片免观看| 成年丰满熟妇午夜免费视频| 色偷偷亚洲男人天堂| 久久久青草青青国产亚洲免观 | 亚洲视频免费播放| 久久久久久久久免费看无码| 亚洲AV无码一区二区乱子仑| 亚洲成A人片在线观看中文| 中文日本免费高清| 亚洲最新在线视频| 又色又污又黄无遮挡的免费视| 久久久免费观成人影院| 777亚洲精品乱码久久久久久| 免费高清小黄站在线观看| 日韩精品视频在线观看免费| 亚洲AV成人精品网站在线播放| 日韩精品福利片午夜免费观着| 黄色毛片视频免费| 久久久久亚洲AV无码麻豆| 免费被黄网站在观看| a毛片在线看片免费| 波多野结衣亚洲一级| 亚洲av无码乱码在线观看野外| 久久久久免费看黄a级试看| 亚洲精品中文字幕无码A片老| 日本亚洲欧洲免费天堂午夜看片女人员| 精品国产无限资源免费观看|