在EJB 3.1之前,如果要执行异步处理,则必须使用JMS和MDB,在EJB 3.1中,可以在方法上使用带有@Asynchronous注释的简单会话EJB,该方法必须异步调用.
@Stateless
@Remote(HelloEjbAsynchronousRemote.class)
public class HelloEjbAsynchronous implements HelloEjbAsynchronousRemote {
@Asynchronous
@Override
public Future<String> ejbAsynchronousSayHello(String name){
Run Code Online (Sandbox Code Playgroud)
如果您的方法具有返回值,则您的方法必须返回AsyncResult对象,该对象是Future的实现.
return new AsyncResult<String>("Hello "+name);
Run Code Online (Sandbox Code Playgroud)