0

从 EJB 事务中,我使用 SOAP 调用远程站点。远程服务器没有响应。我得到了交易超时。但我想从远程呼叫中获得超时。

如何全局设置 SOAP 请求超时?如何为特定调用设置 SOAP 请求超时?

4

2 回答 2

0

要全局设置超时,您可以使用Web 服务应用程序的 HTTP 传输自定义属性。您在这里寻找的超时时间是timeout. 这是默认的 300 秒(大于全局事务超时默认值,即 120 秒,因此您会收到事务超时)。

如果您使用的是 JAX-RPC,请确保您处于包含 PM60752 修复程序的补丁级别 6.1.0.45、7.0.0.25、8.0.0.5 和 8.5.0.1)。

如尼克的回答所示,如果您使用较新的 JAX-WS 堆栈,则可以使用其他方法来配置超时。

使用 JAX-RPC 时,您可以为特定调用端点设置超时,如为 JAX-RPC Web 服务客户端设置超时值一文中所述。对于 JAX-WS,您可以使用绑定或在How to Set Timeout for JAX-WS WebService Call中选择其中一种解决方案。

为 Web 服务配置超时时要记住的一件事是,Web 服务传输依赖于 HTTP 传输(假设 SOAP over HTTP),而这又依赖于 TCP 传输,所有这些都可以针对各种超时进行配置。这些层之间的关系和常见问题的解决方案在影响 Web 服务、HTTP 和 SOAP 客户端的常见超时一文中进行了概述。

于 2013-06-15T07:50:18.653 回答
0

您应该能够使用策略集进行配置。有关该主题的 IBM 文档,请参阅下面的链接。

http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp?topic=%2Fcom.ibm.websphere.nd.doc%2Fae%2Frwbs_jaxwstimeouts.html

于 2013-06-14T17:09:58.063 回答