gpt4 book ai didi

java - 如何为 SOAP 调用设置超时

转载 作者:行者123 更新时间:2023-12-01 01:04:17 26 4
gpt4 key购买 nike

我需要通过 HTTPS 使用 javax.xml.soap 为 SOAP 调用设置超时
但是我不知道该怎么做,必须有一个技巧来做到这一点,但我找不到它。

SOAPMessage sm = null;
SOAPMessage response = null;

SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
SOAPConnection connection = sfc.createConnection();

MessageFactory mf = MessageFactory.newInstance();
sm = mf.createMessage();
...
...
URL url = new URL("https://server:XXXX/blablabla);
response = connection.call(sm, url);

我看到有人在做:
if (xxxSoapService instanceof Stub)
((Stub) xxxSoapService).setTimeout(10000);

xxxSoapService 扩展了 java.rmi.Remote 并且 Stub 来自 import org.apache.axis.client.Stub;

那里可能有我想念的东西。

最佳答案

假设您已经在后台线程中执行 .call() 。您可以在不同的线程上触发计时器并终止加载线程。

或者,由于 SOAPMessage 拥有您的所有数据,您可以只使用 HttpUrlConnection 来发送消息。

HttpUrlConnection connection = // initialize me!
connection.setReadTimeout(TIMEOUT_VALUE);
SOAPMessage sm = // initialize me!

// more stuff for your message

connection.connect();

sm.writeTo(connection.getOutputStream());

这应该有效,除非我对 writeTo() 的行为有误解。

关于java - 如何为 SOAP 调用设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com