我目前正在使用Java的Web服务。我的设置代码如下所示:
Authenticator.setDefault(myAuth);
service = new The_Service().getWSHttpBindingITheService();
Map<String, Object> requestContext = ((BindingProvider) service).getRequestContext();
Map<String, List<String>> headers = new HashMap<>();
headers.put("Username", Collections.singletonList(username));
headers.put("Password", Collections.singletonList(password));
requestContext.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
然后我这样消费:
TheResult r = service.getTheResult(resultId);
这一切都很好,但是我对这个设置如何运作的理解是有限的。我想知道的是:这是一个实时连接,还是作为单独的请求工作?
我质疑的原因是我不确定是否需要处理重新连接。如果失败,所有连续请求都会失败,还是只是服务出现故障时请求失败?
答案 0 :(得分:1)
从您的代码看起来您正在使用HTTPBinding
网上有不同的例子,显示通过网络传输的内容,例如MkYong
当您查看&#34;跟踪SOAP流量&#34;您可以看到它只是一个常见的HTTP请求/响应。
发送两个请求时,他们会被处理单独的请求。 当使用HTTP keep alive时,它们可能使用相同的连接。
只要服务器处于活动状态且工作正常,连续请求就会成功。