2011-03-02 88 views
0

我需要实现Java web服务(在websphere上),该服务又调用N个其他Web服务。我不想让它阻塞,所以我正在考虑为它调用的每个WS实现一个线程。是否有任何警告作为Web服务的线程的父母? (这种解决方案不能使用排队技术)。Java Web服务和多线程

谢谢

回答

1

这当然是可行的。唯一真正的警告是你必须

1)确保线程所需的所有信息都被传入。根据所使用的技术,信息通过ThreadLocal绑定到当前线程,所以你需要确保孩子们拥有他们需要的一切。

2)协调响应。可能不是问题,但如果您需要协调答复,您需要做一些事情。另外,当原始Web服务调用被调用时,您是否可以立即返回响应,还是需要等到其他Web服务被调用?

3)错误条件。如果其中一个子Web服务调用失败,您需要做什么?这取决于你的要求。

请注意,如果N很小,调用N个webservices调用不应该花太长时间。在通过获得异步解决方案的痛苦之前,我会同步尝试它,除非事先确定这不是一个选项。

+1

另一件需要注意的事情是限制线程的数量,所以一个线程池可能比为每个请求启动一个新线程要好。 – biziclop 2011-03-02 20:14:28

+0

@biziclop,是的,很好的建议 – hvgotcodes 2011-03-02 20:18:02

+0

感谢您的回复。关于第2点和第3点,这个想法是,在所有将被调用的WS通用的超时之后,调用WS将采用默认值并返回一个及时的响应。 – xain 2011-03-03 00:52:01