我正在尝试将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
答案 0 :(得分:2)
使用@Named注释注释边界(Cart)使得 购物车立即可见表达语言(EL)表达式 JSP和JSF。这个@Named注释采用了简单的名称 带注释的类,将第一个字符放在小写中,然后公开它 直接到JSF页面(或JSP)。
Activiti使用相同的表达语言(EL),所以我的猜测是你尝试使用;
activiti:delegateExpression="${databaseWriter}"
另外,我使用EJB和Activiti所以我只是猜测,但上面的例子是它如何与Spring一起工作。
希望它有所帮助。