Activiti - DelegateExpression无法解析

时间:2014-10-06 06:48:36

标签: java ejb cdi activiti

我正在尝试将Activiti-BPM Framework集成到Java EE Web应用程序中。 Moment的主要目标是将一个EJB作为DelegateExpression注入到Servicetask中(以处理数据库操作)。

我读到Activiti还没有(还)使用EJB,所以我这样注释了这个类:

@Named
@LocalBean
@Stateless
@Dependent
public class DatabaseWriter implements JavaDelegate {...}

并尝试以多种方式注入它:

activiti:delegateExpression="${DatabaseWriter}"
activiti:delegateExpression="DatabaseWriter"
activiti:delegateExpression="$DatabaseWriter"

分别检查它是否只是一个Bug或其他东西:

activiti:expression="${DatabaseWriter.execute(execution)}"

在任何情况下,我都会遇到类似"无法解析DatabaseWriter的异常,没有使用名称DatabseWriter实现JavaDelegate的bean foudn ..."

我测试了Class本身 - 不使用cdi - JPA没有工作,但是这个类可以被Activiti实例化并执行execute方法 - 所以类代码本身就可以了。

我也尝试在JAX-RS EJB中注入该类 - 包括CDI和@EJB - 它可以工作。问题取决于我试图将其带入Activiti的方式。

我还提供了问题的截图(所有代码,xml和logmessage)以便更好地理解,如果它有帮助:

http://s29.postimg.org/tmiknudjb/problem.jpg

感谢您的帮助或帮助!

此致 BillDoor

1 个答案:

答案 0 :(得分:2)

来自Oracle documentation

  

使用@Named注释注释边界(Cart)使得   购物车立即可见表达语言(EL)表达式   JSP和JSF。这个@Named注释采用了简单的名称   带注释的类,将第一个字符放在小写中,然后公开它   直接到JSF页面(或JSP)。

Activiti使用相同的表达语言(EL),所以我的猜测是你尝试使用;

activiti:delegateExpression="${databaseWriter}"

另外,我使用EJB和Activiti所以我只是猜测,但上面的例子是它如何与Spring一起工作。

希望它有所帮助。