Hello CXF Experts, Sergey, Aki,

I have some issues to implement a simple test using WebSocket with CXF 3.1.7, 
in a Tomcat 8 Servlet container.

To make troubleshooting easier, I shared my demo project (based on the official 
CXF samples written by Aki):
https://github.com/AnthonyMullerPlayground/cxf31_websocket

The webapp context is "cxf31_websocket" and it contains a simple RESTful 
service running under "/services/users" path.

The project also contains a basic index.html webpage to test the websocket.

CXF is bootstrapped using: org.apache.cxf.transport.servlet.CXFServlet

Spring is used to and configured this way with a "beans.xml" file:

 <jaxrs:server id="websocketService" address="/" 
transportId="http://cxf.apache.org/transports/websocket"; />
<context:component-scan base-package="com.sap.businessobjects.amuller"/>

When I check the websocket using Chrome, the following error is displayed in 
the Network panel of the developer tools:

Request headers:
GET ws://localhost:8080/cxf31_websocket/services HTTP/1.1
Host: localhost:8080
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://localhost:8080
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,fr;q=0.6
Sec-WebSocket-Key: Uc/E4OEE/BnKx/EvHUgLtQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

Response headers:
HTTP/1.1 501 Not Implemented
Server: Apache-Coyote/1.1
X-Atmosphere-first-request: true
X-Atmosphere-tracking-id: aeeb9f45-62e8-45b4-9d37-4657988e20ec
X-Atmosphere-error: Websocket protocol not supported
Transfer-Encoding: chunked
Date: Wed, 28 Sep 2016 15:21:58 GMT
Connection: close

No error is displayed in the Eclipse console... I'm stuck because I didn't 
really get the magic behind the scene. It seems that the transportId attribute 
is enabling the full WebSocket logic? 
(transportId="http://cxf.apache.org/transports/websocket";)

Thanks for your help and explanations.

Best regards,
Anthony MÜLLER




Reply via email to