スクリプトとELを介してjBPMとSpringを統合する方法
-
06-09-2019 - |
質問
私は次のテクノロジースタックを使用/予想しています:
- JSF
- 縫い目
- jBPM
- 春
もちろん、Seam が Spring Bean に直接アクセスできるようにしたいのですが、これだけのことは正常に動作します。次に、jBPM に進み、Spring Bean にアクセスしてアクションを実行し、意思決定を行う概念実証のプロセス定義を開発したいと思います。
関心事の分離を促進し、クラスパスに Seam がなくてもプロセスを確実に実行できるようにするには、すべての Seam 管理コンポーネントへのアクセスを許可しないソリューションが必要です。
Seam が特注の EL リゾルバーを使用していることは知っていますが、それ以外はどこから始めればよいでしょうか?
解決
その可能性のVariableResolverサブタイプとあなたのjbpm.cfg.xmlのファイルで、あなたのサブタイプを指定します。これは、#{MyBeanとは}あなたのBeanに解決できるようにすることができます。
<jbpm-configuration>
<bean name="jbpm.variable.resolver" class="com.your.jbpm.VariableResolver" singleton="true" >
<field name="backingVariableResolver"><ref bean="jbpm.variable.backingResolver" /></field>
</bean>
<bean name="jbpm.variable.backingResolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
</jbpm-configuration>
が、スクリプトやアクションからのアクセスのための方法は、過渡を注入することです変数はあなたがバグを回避する必要があるかもしれません念頭に置いて、プロセス・インスタンスにを例えばによってJBPM-304 に、サブスクリプトを入力すると、関連するHibernateマッピングファイルを調整します。この注射は、各プロセス・インスタンスに各信号の前に繰り返されなければならない。
これらの技術は、あなたがにアクセスしたいBeanへのアクセス権を持っていることを確認するために使用することができ、本当にあなたにカスタムELを与えることはありません。それはJbpmExpressionEvaluatorクラスのいくつかの深刻なハッキングを取るだろう。