Hi,
I am trying to integrate CDAP UI with Knox. CDAP UI main page send some web
socket request like:
ws://192.168.134.119:11011/cdap/ns/default/_sock/719/ixibayd2/websocket
Changed request through Knox:
wss://192.168.134.119:8443/gateway/default/cdapui/cdap/ns/default/_sock/719/ixibayd2/websocket
I have written the following rewrite.xml and service.xml for handling this:
Service.xml:
<service role="CDAPWS" name="cdapws" version="4.3.4">
<routes>
<route path="/cdapui/**/websocket">
<rewrite apply="CDAPWS/cdap/ws/inbound" to="request.url"/>
</route>
</routes>
</service>
Rewrite.xml:
<rules>
<rule dir="IN" name="CDAPWS/cdap/ws/inbound" pattern="*://*:*/{**}/websocket">
<rewrite template="{$serviceUrl[CDAPWS]}/{**}/websocket"/>
</rule>
</rules>
My web socket calls are showing status of 101 switching protocols but I can see
errors in Knox gateway logs :
2018-08-28 06:39:13,978 WARN websockets.ProxyWebSocketAdapter
(AbstractEventDriver.java:unhandled(245)) - Unhandled Error (closing connection)
org.eclipse.jetty.io.RuntimeIOException: java.io.EOFException: Reading
WebSocket Upgrade response
at
org.apache.hadoop.gateway.websockets.ProxyWebSocketAdapter.onWebSocketConnect(ProxyWebSocketAdapter.java:94)
at
org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onConnect(JettyListenerEventDriver.java:87)
at
org.eclipse.jetty.websocket.common.events.AbstractEventDriver.openSession(AbstractEventDriver.java:227)
at
org.eclipse.jetty.websocket.common.WebSocketSession.open(WebSocketSession.java:421)
at
org.eclipse.jetty.websocket.server.WebSocketServerConnection.onOpen(WebSocketServerConnection.java:72)
at
org.eclipse.jetty.io.AbstractEndPoint.upgrade(AbstractEndPoint.java:185)
at
org.eclipse.jetty.server.HttpConnection.completed(HttpConnection.java:345)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:436)
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748)
Can anybody please help me in knowing why this error is coming?
Thanks,
Priyanka