我正在开发一个应用程序,我们必须建立,现在同步工作程序的某些步骤变得异步。我们使用JSF作为前端,我们有managedbeans和EJB-s。
在深入研究这个主题之后,我发现,我们不能在ManagedBeans中创建异步方法,因为它们不受支持,因此它们在大多数情况下都不起作用(理论上对于没有人,但它适用于有些人根据评论)。
理论上我知道支持异步执行意味着异步函数执行将在新线程中发生。在我开始异步执行后,我可以在函数中调用其他函数(如println)。那么这是否意味着,我也可以回调托管bean?或者他们不支持异步执行的那部分?如果没有,为什么不可能呢?
通过回电我的意思是这样的:
@ManagedBean
@ViewScoped
public class managedBean{
@EJB
private AsynchronClass asychronClass;
public void function(){
asychronClass.callAsynchronFunction(this);
}
public void functionAsynch(){
//do the original things
}
}
@LocalBean
@Stateless
public class AsychronClass{
public void callAsynchronFunction(managedBean mB){
mB.functionAsynch();
}
}