JBoss Web服务中的多线程

时间:2013-06-12 09:06:11

标签: web-services jboss executorservice

如何同时在多个数据库上调用查询并等待其结果返回?

设置

我正在使用JAX-WS和JBoss 7来提供Web服务。我的服务调用多个数据库的查询,组合它们的结果并将所有结果返回给调用者。

Setting

到目前为止我做了什么

我有一个工作的客户端和服务器(除了服务器没有从数据库中检索任何结果,但我会回到那里)。在我的代码的init方法中,我创建了一个我重用的ExecutorService,我提交Callable(执行查询并从数据库返回结果)。 这些Callable执行数据库查询并返回结果。

问题

我的Future返回null(我想我没有犯任何其他错误)。除此之外,我在某处读到你不应该在JBoss上部署的Web服务中使用你自己的ExecutorService

问题

如何解决问题呢?如何同时在多个数据库上调用查询并等待其结果?

1 个答案:

答案 0 :(得分:0)

因此在JBoss中不建议使用自己的线程。我找到了一些解决方案:

  • 不要使用JBoss,例如使用Java Endpoint接口。在那里你可以手动完成所有事情 - 但是,这意味着你错过了JBoss的优秀功能
  • 使用Oracle Glassfish及其新的ManagedExecutorService,请参阅例如here一个很好的例子
  • 使用BPEL(业务流程执行语言)来编排多个/并行流程,请参阅例如here示例
相关问题