+1 to reuse PAXWEB-1027, and happy to work with you on this one ;) Regards JB
On 26/06/2019 11:33, Stephan Siano wrote: > Hi, > > I did some further work on the topic. Here are my results: > > 1. I have some changes that are required to get the tests working at > all. There is some heavy use of service loaders in the websocket API, > which doesn't play too well with OSGi, so some tricks with > ThreadContext class loaders are needed. > 2. With these changes the tests works with the jetty container (I > don't know who parses these Annotations, but obviously something in > Jetty does). > 3. I did some change to the sample bundle to have it register itself > programatically (as an option). With this change, the test will work > on Tomcat, so the runtime does work in tomcat but the automatic > registration doesn't. In order to make that working, I needed to > register an additional ServletContainerInitializer in pax-web-tomcat. > 4. I could not get it working with the Undertow container (the > registration, the test does work but returns a 404 when trying to > upgrade the websocket), which means that the endpoint is not registered. > > I think I should contribute what I have now because it will bring us a > working test for websockets on Jetty and at least partially working > websocket support on Tomcat. Do I create a new JIRA item for that or > do I re-use PAXWEB-1027, which is still open? > > Does anybody know how the websocket endpoint annotation parsing works > in pax-web-jetty (and maybe how we can get the same functionality with > Tomcat and Undertow)? > > Best regards > Stephan > > Am Dienstag, 25. Juni 2019 17:45:03 UTC+2 schrieb Achim Nierbeck: > > Hi, > > when I first started to look into websockets, there needed to be > extra Bundles installed for Jetty. > That's about 4 to 5 years ago :) > But I haven't looked into the annotations, as far as I can remember. > > Regards, Achim > > > Am Di., 25. Juni 2019 um 16:49 Uhr schrieb Jean-Baptiste Onofré > <jeanbapti...@gmail.com <javascript:>>: > > I mean that it's a similar pattern we use for other "connector". > > By the way, did you take a look on the websocket example in > Karaf ? > > Regards > JB > > On 25/06/2019 16:22, Stephan Siano wrote: >> Hi, >> >> I'm not so sure whether this is easy. I couldn't find >> anything about the web socket annotations in the War extender >> (plus the annotation scanner in the War extender creates some >> kind of dummy web.xml structure from the scanned annotations, >> but there are no web.xml entries for websockets). >> >> Nevertheless, are you interested in my changes to the tests? >> I think with these changes the tests start again (at least on >> Tomcat and Undertow), but the tests fail. I also tried to >> register the Websocket programatically with a ContextListener >> but there I couldn't get the ServerContainer from the >> ServletContext (AFAIK this should work >> via >> servletContext.getAttribute("javax.websocket.server.ServerContainer");). >> There is probably all the websocket infrastructure missing in >> the Pax-Web classes. >> >> Best regards >> Stephan >> >> On Tuesday, June 25, 2019 at 3:40:22 PM UTC+2, Jean-Baptiste >> Onofré wrote: >> >> Hi, >> >> AFAIR, it's not yet fully supported. >> >> But easy to add/fix, I will tackle that. >> >> Regards >> JB >> >> On 25/06/2019 15:25, Stephan Siano wrote: >>> Hi, >>> >>> I have a question concerning web sockets in Pax-Web: >>> >>> A colleague of mine is trying to deploy a war on a >>> Pax-Web container that contains some annotated websocket >>> server endpoints. This works with other web containers >>> but not on Pax web (he is getting a 404 response when he >>> is trying to upgrade the connection). >>> >>> I looked into the Pax-Web integration tests and it >>> turned out that there is an integration test for a very >>> similar scenario >>> WebSocketIntegrationTest,testWebSocket() which uses >>> the websocket-jsr356 sample bundle. >>> >>> However, this test was disabled. Even worse, it did not >>> work anymore after the test client was moved from the >>> jetty http client to the apache http client (because it >>> currently uses a jetty websocket client which relies on >>> the jetty http client). >>> >>> I changed the test infrastructure to use a jsr356 client >>> (with the container specific implementation) and with >>> some hassle around the class loading because of the >>> pax-exam infrastructure I could likely get this running >>> (at least with tomcat and undertow). However on both >>> containers I get a 404 response code when upgrading the >>> connection (as my colleague got with his websocket endpoint. >>> >>> Did this ever work in Pax-Web? I couldn't find any >>> coding that is parsing for the ServerEndpoint annotation >>> (only Servlet and other stuff). Or is this still >>> unimplemented? >>> >>> Best regards >>> Stephan >>> -- >>> -- >>> ------------------ >>> OPS4J - http://www.ops4j.org - op...@googlegroups.com >>> >>> --- >>> You received this message because you are subscribed to >>> the Google Groups "OPS4J" group. >>> To unsubscribe from this group and stop receiving emails >>> from it, send an email to op...@googlegroups.com. >>> To view this discussion on the web visit >>> >>> https://groups.google.com/d/msgid/ops4j/1baaf72c-d85f-423f-a9f3-91974ca72ba4%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/ops4j/1baaf72c-d85f-423f-a9f3-91974ca72ba4%40googlegroups.com?utm_medium=email&utm_source=footer>. >>> For more options, visit >>> https://groups.google.com/d/optout >>> <https://groups.google.com/d/optout>. >> >> -- >> -- >> ------------------ >> OPS4J - http://www.ops4j.org - op...@googlegroups.com >> <javascript:> >> >> --- >> You received this message because you are subscribed to the >> Google Groups "OPS4J" group. >> To unsubscribe from this group and stop receiving emails from >> it, send an email to op...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> >> https://groups.google.com/d/msgid/ops4j/919b3351-ea5e-46e7-8e3c-310970cb71b1%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ops4j/919b3351-ea5e-46e7-8e3c-310970cb71b1%40googlegroups.com?utm_medium=email&utm_source=footer>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > -- > -- > ------------------ > OPS4J - http://www.ops4j.org - op...@googlegroups.com > <javascript:> > > --- > You received this message because you are subscribed to the > Google Groups "OPS4J" group. > To unsubscribe from this group and stop receiving emails from > it, send an email to op...@googlegroups.com <javascript:>. > To view this discussion on the web visit > > https://groups.google.com/d/msgid/ops4j/0d56e6d8-2bad-fec5-f7e5-ccf6ba007882%40gmail.com > > <https://groups.google.com/d/msgid/ops4j/0d56e6d8-2bad-fec5-f7e5-ccf6ba007882%40gmail.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > > > -- > > Apache Member > Apache Karaf <http://karaf.apache.org/> Committer & PMC > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/ > <http://wiki.ops4j.org/display/paxweb/Pax+Web/>> Committer & > Project Lead > blog <http://notizblog.nierbeck.de/> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> > > Software Architect / Project Manager / Scrum Master > > -- > -- > ------------------ > OPS4J - http://www.ops4j.org - ops4j@googlegroups.com > > --- > You received this message because you are subscribed to the Google > Groups "OPS4J" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to ops4j+unsubscr...@googlegroups.com > <mailto:ops4j+unsubscr...@googlegroups.com>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ops4j/dccc6d6f-202c-431c-8780-96b9b9b3c29d%40googlegroups.com > <https://groups.google.com/d/msgid/ops4j/dccc6d6f-202c-431c-8780-96b9b9b3c29d%40googlegroups.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout. -- -- ------------------ OPS4J - http://www.ops4j.org - ops4j@googlegroups.com --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ops4j/92c00a0c-9a19-904a-4439-dcd1d4cea815%40gmail.com. For more options, visit https://groups.google.com/d/optout.