Java 使用CXF测试web服务连接性
我有一个通过Swing客户端使用的CXF web服务。首先,我创建一个Java 使用CXF测试web服务连接性,java,web-services,connection,cxf,Java,Web Services,Connection,Cxf,我有一个通过Swing客户端使用的CXF web服务。首先,我创建一个JaxWsProxyFactoryBean,然后创建JAX-WS代理。此时,我想测试客户机是否能够正确地向web服务发送消息。我知道HTTP是一个无状态协议,因此它在其层不使用任何连接。到目前为止,我使用了web服务定义的ping()方法,以便客户端测试连接性 正确的方法是什么?我不认为向API添加一个虚拟方法只是为了允许测试连接性是最好的解决方案。有没有一种CXF方法可以通过代理实现这一点 谢谢您有两种选择: 我假设您的we
JaxWsProxyFactoryBean
,然后创建JAX-WS代理。此时,我想测试客户机是否能够正确地向web服务发送消息。我知道HTTP是一个无状态协议,因此它在其层不使用任何连接。到目前为止,我使用了web服务定义的ping()方法,以便客户端测试连接性
正确的方法是什么?我不认为向API添加一个虚拟方法只是为了允许测试连接性是最好的解决方案。有没有一种CXF方法可以通过代理实现这一点
谢谢您有两种选择:
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服务。谢谢您的回答。正如我在问题中所说,到目前为止,我使用了一种特殊的ping操作。我喜欢您提出的第一个解决方案,但我想知道是否不使用CXF代理来发出HEAD请求可能是一个问题。使用HttpURLConnection发出HEAD请求只会检查是否与服务连接。但是,我还想检查是否可以通过CXF代理访问该服务,因为客户端将使用该代理访问该服务。您知道是否可以通过CXF代理发出HEAD请求吗?