使用CXF测试Web服务连接

时间:2013-01-09 14:47:31

标签: java web-services connection cxf

我有一个通过Swing客户端使用的CXF Web服务。首先,我创建一个JaxWsProxyFactoryBean,然后创建JAX WS代理。此时,我想测试客户端是否可以正确地向Web服务发送消息。我知道HTTP是一种无状态协议,因此它不会在其层使用任何连接。到目前为止,我已经使用了Web服务定义的ping()方法,以便客户端测试连接性。

这样做的正确方法是什么?我不认为在API中添加虚拟方法只是为了允许测试连接性是最好的解决方案。是否有CXF方式通过代理执行此操作?

由于

1 个答案:

答案 0 :(得分:2)

您有几种选择:

  1. 我假设您的Web服务是SOAP Web服务,然后您可以为WSDL文档发出HTTP HEAD请求。
  2. 在Web服务中实现特殊的“ping”操作(SOAP)。 (可能你已经拥有它了)
  3. 如果您选择第一个选项 - 发出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服务。

相关问题