Вопрос

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

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

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

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

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

Это было полезно?

Решение

Можно создать подтип 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>

но для доступа из скриптов и действий можно внедрить переходные переменные в экземпляр процесса, имея в виду, что вам может потребоваться обойти ошибку ДЖБПМ-304, напримервведите Script и настройте связанные файлы сопоставления спящего режима.Эту инъекцию необходимо повторять перед каждым сигналом для каждого экземпляра процесса.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top