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/

Reply via email to