I had to add cxf-http-jetty which is not described in the readme - I'm not too sure this sample was tested on Karaf 4 (4.0.4)... now I'm getting error 501 ... :D
JP -----Message d'origine----- De : Sergey Beryozkin [mailto:[email protected]] Envoyé : mercredi 27 juillet 2016 15:34 À : [email protected] Objet : Re: Error during WebSocket handshake: Unexpected response code Look at that demo and check README/etc, and make it work in Karaf. I haven't written it but looks like it has all the info needed Sergey On 27/07/16 16:25, CLEMENT Jean-Philippe wrote: > Good, I went to > https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/websocket_osgi > and added the missing cxf-transports-websocket-server feature. > > Things get better :) ... now I get NoClassDefFoundError: > org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory. > > Well, starting from a Karaf basic custom assembly, what features am I > expected to add as bootFeatures in order to get CXF+WebSockets running? > > Regards, > JP > > -----Message d'origine----- > De : Sergey Beryozkin [mailto:[email protected]] Envoyé : mercredi > 27 juillet 2016 15:07 À : [email protected] Objet : Re: Error > during WebSocket handshake: Unexpected response code > > Look at the websocket_osgi demo done by Aki > > Sergey > > On 27/07/16 15:55, CLEMENT Jean-Philippe wrote: >> Haha, it seems I'm in the "servlet container mode" and not the "Jetty >> embedded mode"... so I would have, as far as I understood, set both the >> address as a path and the transportId to >> http://cxf.apache.org/transports/websocket. >> >> I did try but I get the following exception: >> BusException: No DestinationFactory was found for the namespace >> http://cxf.apache.org/transports/websocket >> >> What should I add to get rid of this exception? >> >> Regards, >> JP >> >> -----Message d'origine----- >> De : CLEMENT Jean-Philippe >> [mailto:[email protected]] >> Envoyé : mercredi 27 juillet 2016 14:44 À : [email protected] >> Objet >> : RE: Error during WebSocket handshake: Unexpected response code >> >> I don't find the issue but something is strange; the /cxf page displays: >> Endpoint address: http://localhost:8181/cxfws://localhost/socket >> >> My blueprint is: >> <jaxrs:server id="something" address="ws://localhost/socket"> >> >> The address parsing seems strange isn't it? >> >> Regards, >> JP >> >> -----Message d'origine----- >> De : Sergey Beryozkin [mailto:[email protected]] Envoyé : mercredi >> 27 juillet 2016 14:35 À : [email protected] Objet : Re: Error >> during WebSocket handshake: Unexpected response code >> >> I've run a demo which Aki did and it works fine. >> Yes make sure 'ws:' (or wss:) is used, it enables the loading of the >> CXF WebSocket transport which can support both WebSocket and 'plain' >> HTTP >> >> Cheers, Sergey >> On 27/07/16 13:49, CLEMENT Jean-Philippe wrote: >>> Hi Sergey, >>> >>> I added "socket.binaryType= 'arraybuffer';" but I get the same error. I'm >>> not too sure if it is used or not as I don't know when WebSocket tries to >>> connect, and setting socket.binaryType or socket.binarytype or >>> socket.whatEver does not display any error. >>> >>> Also, I'm wondering about the CXF configuration, is the binding to a >>> separate server configured with a "ws://..." (the "ws" part) address >>> mandatory? >>> >>> Regards, >>> JP >>> >>> -----Message d'origine----- >>> De : Sergey Beryozkin [mailto:[email protected]] Envoyé : >>> mercredi >>> 27 juillet 2016 12:34 À : [email protected] Objet : Re: Error >>> during WebSocket handshake: Unexpected response code >>> >>> Hi >>> On 27/07/16 12:26, CLEMENT Jean-Philippe wrote: >>>> Dear CXF experts, >>>> >>>> I'm trying to connect a web client to a CXF WebSocket. The browser logs >>>> the error "WebSocket connection failed: Error during WebSocket handshake: >>>> Unexpected response code: XXX". The XXX response code changes depending on >>>> the @Produces annotation: 200 when text/plain, 406 when text/*. >>>> >>> 406 with text/* can be explained by the fact the websocket client >>> does not know what HTTP Accept is and the spec requires that when >>> the final response type has a wildcard subtype (with the only >>> exception being >>> application/*) then it is 406. >>>> The server Java looks like this: >>>> @GET >>>> @Path("monitor") >>>> @Produces("text/*") >>>> public StreamingOutput greetMonitor() { >>>> return stream -> { >>>> stream.write("Ok".getBytes()); >>>> stream.flush(); >>>> }; >>>> } >>>> >>>> The client Javascript looks like this: >>>> var socket= new >>>> WebSocket("ws://myurlwithsameportaswebservice/cxf/test/monitor"); >>>> >>>> socket.onmessage= function(e) { console.log(e.data); }; >>>> >>>> What's wrong? >>> Can you please look at >>> https://github.com/apache/cxf/blob/master/distribution/src/main/rele >>> a s e/samples/jax_rs/websocket/src/main/resources/index.html >>> >>> may be you need to set a socket type >>> >>> Cheers, Sergey >>> >>>> >>>> Regards, >>>> JP >>>> >>> >>> >>> -- >>> Sergey Beryozkin >>> >>> Talend Community Coders >>> http://coders.talend.com/ >>> >> >> >> -- >> Sergey Beryozkin >> >> Talend Community Coders >> http://coders.talend.com/ >> > > > -- > Sergey Beryozkin > > Talend Community Coders > http://coders.talend.com/ > -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/
