Как интегрировать jBPM и Spring с помощью скриптов и EL - PullRequest
1 голос
/ 23 февраля 2009

Я использую / ожидаю следующий стек технологий:

  • JSF
  • Шов
  • jBPM
  • Весна

Конечно, я бы хотел, чтобы Seam получил прямой доступ к Spring bean-компонентам и сделал так, чтобы все работало нормально. Теперь я хотел бы перейти к jBPM и разработать определение концептуального процесса, которое обращается к бинам Spring для выполнения действий и принятия решений.

Чтобы способствовать разделению интересов и обеспечению возможности выполнения процессов без Seam в пути к классам, я бы хотел решение, которое НЕ разрешает доступ ко всем управляемым компонентам Seam.

Я знаю, что Seam использует сделанный на заказ распознаватель EL, но кроме этого, с чего мне начать?

1 Ответ

0 голосов
/ 02 марта 2009

Возможно использовать подтип VariableResolver и указать свой подтип в файле jbpm.cfg.xml. Это может позволить # {myBean} разрешить ваш бин.

<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 , например Подтип Сценарий и настройка связанных файлов отображения гибернации. Это внедрение должно повторяться перед каждым сигналом для каждого экземпляра процесса.

Эти методы могут использоваться для обеспечения доступа к бинам, к которым вы хотите получить доступ, но на самом деле вам не предоставляется пользовательский EL. Это может привести к серьезному взлому класса JbpmExpressionEvaluator.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...