2009-08-20 6 views
0

私は奇妙な動作が続いています。Jbpm ProcessDefinitionは常にバージョン-1です

私はSeamとJBPMを使用しています。 私が言うとき:

ProcessDefinition templateDefinition = Jbpm.instance().getProcessDefinitionFromResource(ap.getJpdl()); 
//This will return Enkeltanledning.jpdl.xml 
templateDefinition.getVersion(); 

常に-1を返します。 はしかし、私は、データベースから選択したとき、私はバージョン2

 
mysql> select * from JBPM_PROCESSDEFINITION; 
+-----+--------+-----------------------------+--------------+----------+------------------------+-------------+ 
| ID_ | CLASS_ | NAME_      | DESCRIPTION_ | VERSION_ | ISTERMINATIONIMPLICIT_ | STARTSTATE_ | 
+-----+--------+-----------------------------+--------------+----------+------------------------+-------------+ 
| 1 | P  | Enkeltanledning    | NULL   |  1 |      |   1 | 
| 2 | P  | Enkeltanledning    | NULL   |  2 |      |   31 | 

を取得し、私は、このリンクが見つかりました: jpdl をそして、それは言う:

Unnamed process definitions will always have version number -1.

はしかし、私は私のプロセス定義を持っています私はtemplateDefinitionをデバッグするときに私は正しい名前を得ますEnkeltanledning、私はそれがロードされている正しいjpdlファイルであることを知っています。

私の質問は、なぜ私のコードは常にバージョンで-1を返すのですか? 正しいバージョンが必要な理由は、私が正しいバージョンを持っているかどうかを確認するために、ProcessDefinitionを再デプロイし、常に-1を取得するので、常に再デプロイされるからです。

答えて

1

答えが見つかりました。

その理由は、データベースを照会するのではなく、ファイルからProcessDefinitionを読み込んでいるからです。コードをこれに変更すると解決しました

@In 
JbpmContext jbpmContext; 

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName); 
関連する問題