diff --git a/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketConstants.java b/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketConstants.java index c7565a2592..1f431ab913 100644 --- a/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketConstants.java +++ b/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketConstants.java @@ -57,5 +57,4 @@ public class WebsocketConstants { public static final String CONNECTION_TERMINATE = "connection.terminate"; public static final int WEBSOCKET_UPSTREAM_ERROR_SC = 1014; - public static final String WEBSOCKET_CONNECTION_ERROR = "could not connect to server."; } diff --git a/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketTransportSender.java b/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketTransportSender.java index b1c861cd17..20a1f6074b 100644 --- a/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketTransportSender.java +++ b/components/mediation/transports/org.wso2.micro.integrator.websocket.transport/src/main/java/org/wso2/micro/integrator/websocket/transport/WebsocketTransportSender.java @@ -47,6 +47,7 @@ import java.io.IOException; import java.io.OutputStream; import java.io.StringWriter; +import java.net.ConnectException; import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; @@ -223,21 +224,24 @@ public void sendMessage(MessageContext msgCtx, String targetEPR, OutTransportInf } } catch (URISyntaxException e) { log.error("Error parsing the WS endpoint url", e); - } catch (IOException e) { + } catch (ConnectException e) { handleClientConnectionError(responseSender, e); + } catch (IOException e) { + log.error("Error writing to the websocket channel", e); } catch (InterruptedException e) { - handleClientConnectionError(responseSender, e); + log.error("Error writing to the websocket channel", e); } catch (XMLStreamException e) { handleException("Error while building message", e); } } private void handleClientConnectionError(InboundResponseSender responseSender, Exception e) { + log.error("Error writing to the websocket channel", e); // we will close the client connection and notify with close frame InboundWebsocketSourceHandler sourceHandler = ((InboundWebsocketResponseSender) responseSender).getSourceHandler(); CloseWebSocketFrame closeWebSocketFrame = new CloseWebSocketFrame(WebsocketConstants.WEBSOCKET_UPSTREAM_ERROR_SC, - WebsocketConstants.WEBSOCKET_CONNECTION_ERROR); + e.getMessage()); try { sourceHandler.handleClientWebsocketChannelTermination(closeWebSocketFrame); } catch (AxisFault fault) {