相关疑难解决方法(0)

java @Asynchronous方法:不运行异步

我尝试让异步进程运行.基于此示例:http://tomee.apache.org/examples-trunk/async-methods/README.html

但是addWorkflow(Workflow workflow)只有当代码run(Workflow workflow)完全完成时,该方法才会返回.

然后当它返回并被result.get();调用时,我将获得异常:

引起:java.lang.IllegalStateException:Object不代表一个真实的Future

有什么建议我缺少什么?

@Singleton
public class WorkflowProcessor {

@EJB
private  WorkflowManager workflowManager;

private final static Logger log = Logger.getLogger(WorkflowProcessor.class.getName());



public void runWorkflows(Collection<Workflow> workflows) throws Exception{  
    final long start = System.nanoTime();
    final long numberOfWorkflows = workflows.size();
    Collection<Future<Workflow>> asyncWorkflows = new ArrayList<>();

    for(Workflow workflow : workflows){
        Future<Workflow> w = addWorkflow(workflow);
        asyncWorkflows.add(w);
    }    
    log.log(Level.INFO, "workflow jobs added {0}", new Object[]{numberOfWorkflows});
    for(Future<Workflow> result : asyncWorkflows){
       result.get();
    }

    final long total = …
Run Code Online (Sandbox Code Playgroud)

java java-ee

2
推荐指数
1
解决办法
3352
查看次数

标签 统计

java ×1

java-ee ×1