[Edgent-438] improve WebSocketClientTest's skip-if-cant-connect
diff --git a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientConnectTestHelper.java b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientConnectTestHelper.java
new file mode 100644
index 0000000..f6ffc12
--- /dev/null
+++ b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientConnectTestHelper.java
@@ -0,0 +1,46 @@
+package org.apache.edgent.test.connectors.wsclient.javax.websocket;
+
+import java.net.URI;
+import java.util.Properties;
+
+import javax.websocket.ClientEndpoint;
+import javax.websocket.ContainerProvider;
+import javax.websocket.OnError;
+import javax.websocket.Session;
+import javax.websocket.WebSocketContainer;
+
+import org.eclipse.jetty.util.component.LifeCycle;
+
+@ClientEndpoint 
+public class WebSocketClientConnectTestHelper {
+  
+  @OnError
+  public void onError(Session client, Throwable t) {
+    System.err.println("Unable to connect to WebSocket server: "+t.getMessage());
+  }
+
+  public static void connectToServer(Properties config) throws Exception {
+    // Verify we can create a real websocket connection to the server.
+    //
+    // We do the following instead of a simple socket connect
+    // because in at least one location, the websocket connect/upgrade
+    // fails with: expecting 101 got 403 (Forbidden).
+    // There's something about that location that's not
+    // allowing a websocket to be created to the (public) server.
+    // Everything works fine from other locations.
+    //
+    String wsUri = config.getProperty("ws.uri");
+    URI uri = new URI(wsUri);
+    WebSocketContainer container = ContainerProvider.getWebSocketContainer();
+    try {
+      Session session = container.connectToServer(WebSocketClientConnectTestHelper.class,  uri);
+      session.close();
+    }
+    finally {
+      if (container instanceof LifeCycle) {
+        ((LifeCycle)container).stop();
+      }
+    }
+  }
+
+}
\ No newline at end of file
diff --git a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java
index 4ef65c9..b256bfe 100644
--- a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java
+++ b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java
@@ -23,8 +23,6 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeTrue;
 
-import java.net.InetSocketAddress;
-import java.net.Socket;
 import java.net.URI;
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
@@ -772,21 +770,15 @@
     }
     
     private void skipTestIfCantConnect(Properties config) throws Exception {
-        String wsUri = config.getProperty("ws.uri");
-        // Skip tests if the WebSocket server can't be contacted.
-        try {
-            URI uri = new URI(wsUri);
-            int port = uri.getPort();
-            if (port == -1)
-                port = uri.getScheme().equals("ws") ? 80 : 443;
-            Socket s = new Socket();
-            s.connect(new InetSocketAddress(uri.getHost(), port), 5*1000/*cn-timeout-msec*/);
-            s.close();
-        } catch (Exception e) {
-            System.err.println("Unable to connect to WebSocket server "+wsUri+" : "+e.getMessage());
-            e.printStackTrace();
-            assumeTrue(false);
-        }
+      String wsUri = config.getProperty("ws.uri");
+      try {
+          WebSocketClientConnectTestHelper.connectToServer(config);
+      } catch (Exception e) {
+          System.err.println("Unable to connect to WebSocket server "+wsUri+" : "+e.getMessage());
+          e.printStackTrace();
+          System.err.println("skipTestIfCantConnect(): SKIPPING TEST");
+          assumeTrue(false);
+      }
     }
     
     @Test