我的Web服务是否绑定了连接?

时间:2017-02-03 08:43:49

标签: java web-services

我目前正在使用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);

这一切都很好,但是我对这个设置如何运作的理解是有限的。我想知道的是:这是一个实时连接,还是作为单独的请求工作?

我质疑的原因是我不确定是否需要处理重新连接。如果失败,所有连续请求都会失败,还是只是服务出现故障时请求失败?

1 个答案:

答案 0 :(得分:1)

从您的代码看起来您​​正在使用HTTPBinding

网上有不同的例子,显示通过网络传输的内容,例如MkYong

当您查看&#34;跟踪SOAP流量&#34;您可以看到它只是一个常见的HTTP请求/响应。

发送两个请求时,他们会被处理单独的请求。 当使用HTTP keep alive时,它们可能使用相同的连接。

只要服务器处于活动状态且工作正常,连续请求就会成功。