我有一个通过Swing客户端使用的CXF Web服务。首先,我创建一个JaxWsProxyFactoryBean
,然后创建JAX WS代理。此时,我想测试客户端是否可以正确地向Web服务发送消息。我知道HTTP是一种无状态协议,因此它不会在其层使用任何连接。到目前为止,我已经使用了Web服务定义的ping()方法,以便客户端测试连接性。
这样做的正确方法是什么?我不认为在API中添加虚拟方法只是为了允许测试连接性是最好的解决方案。是否有CXF方式通过代理执行此操作?
由于
答案 0 :(得分:2)
您有几种选择:
如果您选择第一个选项 - 发出HTTP HEAD请求,您可以使用以下代码来实现:
public static boolean exists(String webServiceUrl){
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection connection = (HttpURLConnection) new URL(webServiceUrl).openConnection();
connection.setRequestMethod("HEAD");
return connection.getResponseCode() == HttpURLConnection.HTTP_OK;
} catch (Exception e) {
return false;
}
}
如果要对Web服务执行HEAD请求,则表示可以访问Web服务。