1

私は次のテクノロジースタックを使用しています/期待しています:

  • JSF
  • 継ぎ目
  • jBPM

もちろん、私は Seam が Spring Bean に直接アクセスできるようにしたいと考えています。jBPM に移り、Spring Bean にアクセスしてアクションを実行し、意思決定を行う概念実証プロセス定義を開発したいと思います。

問題の分離を促進し、クラス パスで Seam なしでプロセスを実行できるようにするために、すべての Seam 管理コンポーネントへのアクセスを許可しないソリューションが必要です。

Seam が特注の EL リゾルバを使用していることは知っていますが、それ以外はどこから始めればよいのでしょうか?

4

1 に答える 1

0

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を回避する必要がある場合があることに注意してください。この注入は、各プロセスインスタンスへの各シグナルの前に繰り返す必要があります。

これらの手法を使用して、アクセスしたいBeanに確実にアクセスできるようにすることができますが、実際にはカスタムELを提供するわけではありません。それには、JbpmExpressionEvaluatorクラスの深刻なハッキングが必要になります。

于 2009-03-02T18:35:42.413 に答える