Web services JBoss Web服务中的多线程 如何同时调用多个数据库上的查询并等待其结果返回?

Web services JBoss Web服务中的多线程 如何同时调用多个数据库上的查询并等待其结果返回?,web-services,jboss,executorservice,Web Services,Jboss,Executorservice,设置 我正在使用JAX-WS和JBoss7来提供web服务。我的服务调用多个数据库上的查询,组合它们的结果,并将所有组合的结果返回给调用者 我到目前为止所做的事情 我有一个工作的客户机和服务器(除了服务器不从数据库检索任何结果,但我会回到那个)。在我的代码的init方法中,我创建了一个ExecutorService,我重复使用它,并向它提交Callables(执行查询并从数据库返回结果)。 这些Callables执行数据库查询并返回结果 问题 我的Futures返回null(我想我没有犯任何其

设置

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

我到目前为止所做的事情

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

问题

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

问题


那么如何解决这个问题呢?如何同时调用多个数据库上的查询并等待它们的结果?

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

  • 不要使用JBoss,例如使用Java端点接口。在这里,您可以手动执行所有操作-但是,这意味着您错过了JBoss附带的优秀功能
  • 使用Oracle Glassfish及其新的ManagedExecutorService,请参见示例,以获取一个很好的示例
  • 使用BPEL(业务流程执行语言)编排多个/并行流程,例如,有关一些示例,请参见