Websocket protocol not supported (CLS=o.a.cpr.AsynchronousProcessor) is raised in Atmosphere logs while using Jetty 10.0.9
nopainsnogains12 opened this issue · 29 comments
Describe the bug
Using atmosphere version 2.7.6 with Jetty 10.0.9, we encountered problem as shown in the log "Websocket protocol not supported (CLS=o.a.cpr.AsynchronousProcessor)" while trying to establish websocket connection to our server. According to our quick check, it looks that the PR change tkohlman@e2cb4d0 prepared by tkohlman in the related case#2455 (#2455) seems to be needed to enable atmosphere to automatically discover Jetty 10 support. Could you share why this PR is NOT merged? Can we expect the support for Jetty 10 in new version of atmosphere with websocket functionality as we had before upgrading?
Atmosphere Info
- 2.7.6 Java maven dependencies upgraded from 2.4.32 with Jetty 9.4 while the websocket was working fine.
Expected behavior
Before our upgrade while we were using Jetty 9.4 and Atmosphere 2.4.32, the websocket functionality was working seemlessly. We expect the same after upgrading to Jetty 10.0.9 with Atmosphere new version (now we are using 2.7.6 but not working).
Screenshots
If applicable, add screenshots to help explain your problem.
Systems (please complete the following information):
- OS: Not applicable
- Browser name and version [e.g. chrome 22]
- Java version and distribution JDK 11.0.6
- Serveur name and version [e.g Tomcat/Jetty/Netty]: Jetty 10.0.9
Additional context
For anything else, feel free to get back to us. Thanks in advance! This issue is blocking our production upgrade now. Please help to address it as high priority if possible. Thanks in advance!
@nopainsnogains12 I will need a test case to reproduce it. I do have a working sample with Jetty 10 available here https://github.com/Atmosphere/atmosphere-samples/tree/updates/jetty10_jdk11/samples/chat . Do you have by any chance the usenative
property set to true
? Please remove
@nopainsnogains12 I will need a test case to reproduce it. I do have a working sample with Jetty 10 available here https://github.com/Atmosphere/atmosphere-samples/tree/updates/jetty10_jdk11/samples/chat . Do you have by any chance the
usenative
property set totrue
? Please remove
@jfarcand thanks for your prompt feedback! Let me explain further about our scenarios.
We are registering org.atmosphere.cpr.MeteorServlet as servlet in our case to intercept /ws url requests in order to upgrade it into websocket through Atmosphere. It was working normally before this upgrade in our system. With that, we can establish websocket normally to our server from a normal websocket client before this upgrade.
Regarding the property "org.atmosphere.useNative", we have already followed your comments and set it into false from original true, but the issue is still reproducible.
According to our trouble-shooting after checking the source codes of atmosphere 2.7.6, we detected that the log was raised from AsynchronousProcessor.class line 126, in which the actual instance is org.atmosphere.container.Servlet30CometSupport but we think that it should be something related to Jetty10 support. Right? That's why we think that something similar like tkohlman@e2cb4d0 should be supported for Jetty10 support.
Additional comments: for supporting Jetty 10 websocket, I think that atmosphere should have some correspondent classes (like Jetty93AsyncSupportWithWebSocket for supporting Jetty 9). Right? In this case, Atmosphere can detect which to use during runtime automatically.
Hope it is clear and helpful. If needed, we can have an online session together tomorrow with some tools, like Microsoft Teams to check together on our environment. Thanks in advance!
@nopainsnogains12 Jetty10 supports is via org.atmosphere.container.Servlet30CometSupport
so the issue is not there. As for the support you are requesting, you need to buy some professionnal service via https://www.async-io.org/subscription.html unless you can share a test case. I recommend you take a look at the sample and try to reproduce your issue out of it. Thanks!
@jfarcand Thanks for your quick reply again!
If Jetty10 support is via org.atmosphere.container.Servlet30CometSupport, in which the inherited supportWebSocket() is "false", does that mean atmosphere does NOT support websocket anymore for Jetty 10? If this is the case, it is breaking the backward compatibility which is exactly what we encountered now.
@nopainsnogains12 It does supports it. Like I said the sample (link above) is demonstrating that Jetty 10 and Jety 11 are supported. Take a look at the sample and try to reproduce your issue via a test case so I can quickly take a look and fix as needed.
@jfarcand thanks for your reply.
- the sample code page is NOT availalbe for the moment with 404 HTTP Response code
- Anyway, I checked the sample codes yesterday and it is NOT the same flow as we used and discussed in this case. In our case, we are using org.atmosphere.cpr.MeteorServlet and turn to it for auto-detect the asyncSupport (instance of AsynchronousProcessor) needed to be used according to the classpath information. Before upgrading jetty (was using 9.4) with atmosphere.runtime 2.4.32, it can automatically detect expected instance of AsynchronousProcessor which was Jetty9AsyncSupportWithWebSocket and our system was working fine at that moment.
- Do you have any sample codes/projects which is also using org.atmosphere.cpr.MeteorServlet as servlet and auto-detect AsynchronousProcessor according to the used servlet container Jetty 10?
- In addition, as we mentioned above, with our current version settings, the auto-detected AsynchronousProcessor is org.atmosphere.container.Servlet30CometSupport which is NOT supporting websocket explicitely declared in API supportWebSocket() inherited from AsynchronousProcessor. Could you help to explain which is the correspondent Jetty 10 supporting class in atmosphere 2.7.6 as one implementation of AsynchronousProcessor?
Looking forward to your early reply. Thanks in advance!
@nopainsnogains12 JSR356AsyncSupport
is the one that will be installed. Again, share a test case so I can see what is wrong. Thanks!
@jfarcand Thanks a lot! with your reminder, I realized that we set org.atmosphere.websocket.suppressJSR356=true before. Now I set it into false and I can see that it is really using JSR356AsyncSupport for Jetty 10 now. The original log "Websocket protocol not supported (CLS=o.a.cpr.AsynchronousProcessor)" has gone now.
But, during websocket establish, I received a new warning log as below,
[WARN] [o.a.cpr.AsynchronousProcessor] [] [] [/ws/] [] [] [] [] [] Transport not matching webSocketEnabled. Ending request for 673b5aa9-5cbc-48d7-8bd5-8031a815de8c (CLS=o.a.cpr.AsynchronousProcessor). With this, the WS connection failed to be established. After debugging it, I found that it is caused by an http request header "X-Atmosphere-Transport" with value "UNDEFINED" detected in org.atmosphere.util.Utils.webSocketQueryStringPresentOrNull() line 130.
Any advice? Do you think that we are missing some configuration?
For preparing a testing project, it needs some time for us to extract information and dependencies into a separate project.
@nopainsnogains12 Take a look at https://github.com/Atmosphere/atmosphere-samples/tree/updates/jdk11
. This one works with 10.0.9. No idea about your exception
I'm closing the issue, but let's continue discussing
@jfarcand there are lots of sample modules, which one shall I check regarding the scenario of org.atmosphere.cpr.MeteorServlet in Jetty 10?
samples/chat
@jfarcand
Thanks for your comments. But samples/chat does NOT have any jetty involvement. Not sure it is relevant with our topic at all.....
By the way, I found that "samples/embedded-jetty-websocket-chat" is using embedded jetty websocket but it can NOT pass the compilation. Do you have a working sample with this? Thanks in advance!
@nopainsnogains12 Ah just do mvn jetty:run
under samples/chat
and you will see Jetty 10 in action. The workspace compile for me ->
I have similar problem. I've tried two versions of Jetty/Atmosphere.
With JDK 11 I tried two configurations:
Jetty 10.0.11 and atmosphere-runtime-2.7.7
Jetty 11.0.11 and atmosphere-runtime-3.0.2
There is no compilation problem.
Problem is in this part of code:
final ClientUpgradeRequest request = new ClientUpgradeRequest();
client.connect(socket, echoUri, request).get();
where
client is: org.eclipse.jetty.websocket.client.WebSocketClient
socket is class with annotation: org.eclipse.jetty.websocket.api.annotations.WebSocket
echoUri is URI to: org.atmosphere.cpr.AtmosphereServlet
Error:
AsynchronousProcessor Websocket protocol not supported and org.eclipse.jetty.websocket.api.exceptions.UpgradeException: org.eclipse.jetty.websocket.core.exception.UpgradeException: Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 501 Not Implemented.
In previous versions it was working. (Jetty 9.4.33.v20201020/atmosphere-runtime-2.6.4)
Is there really support for Jetty 10/11 websockets?
@Jozef4481 Share a test case on Github so I can reproduce. Like I said the sample works fine.
I have attached zip file, it is an Eclipse project.
Just run project in eclipse.
Run configuration in eclipse:
Main class:
com.siemens.condis.opal_gateway.Gateway
Program arguments:
conf\opal-gateway.properties
VM arguments:
-Xms32m -Xmx32m -Dorg.slf4j.simpleLogger.defaultLogLevel=debug -Djava.net.preferIPv4Stack=true
@Jozef4481 I'm not using Eclipse :-) Can you make the test use Maven instead? Thanks!
I added maven project.
I run it with:
clean compile exec:java -Dexec.mainClass="com.siemens.condis.opal_gateway.Gateway" -Dexec.args="conf/opal-gateway.properties"
Please ignore slf4j error at the beginning. (java.lang.AbstractMethodError: Receiver class org.slf4j.simple.SimpleServiceProvider)
Thanks.
@nopainsnogains12 I will take a look today. You can take a look at https://github.com/Atmosphere/atmosphere-samples/tree/updates/jdk11/samples/chat which is the sample I'm using to test. It works well with Jetty 10
@nopainsnogains12 I'm not sure I understand what you are trying to do. You seems to use jsr356 and Atmosphere at the same time, and Atmosphere is not configured to support websocket as you can see in your log
[qtp2043858017-23] INFO org.atmosphere.cpr.AtmosphereFramework - Atmosphere is using async support: org.atmosphere.container.Servlet30CometSupport running under container: jetty/10.0.11 using javax.servlet/3.0
In your code
atmosphereServletHolder.setInitParameter(ApplicationConfig.PROPERTY_COMET_SUPPORT,Servlet30CometSupport.class.getName());
The real exception if you let Atmosphere starts with websocket
[qtp969492822-17] ERROR org.atmosphere.cpr.DefaultAsyncSupportResolver - Real error: Unable to configure jsr356 at that stage. ServerContainer is null
java.lang.IllegalStateException: Unable to configure jsr356 at that stage. ServerContainer is null
at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:58)
at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:47)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:244)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolveWebSocket(DefaultAsyncSupportResolver.java:315)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolve(DefaultAsyncSupportResolver.java:301)
at org.atmosphere.cpr.AtmosphereFramework.autoDetectContainer(AtmosphereFramework.java:2087)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:909)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:833)
at org.atmosphere.cpr.AtmosphereFrameworkInitializer.configureFramework(AtmosphereFrameworkInitializer.java:76)
at org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:83)
at org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:79)
at org.atmosphere.cpr.AtmosphereServlet.init(AtmosphereServlet.java:74)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:633)
at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:486)
at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:731)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:524)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1378)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1300)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:562)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
at java.base/java.lang.Thread.run(Thread.java:829)
So the way you are embedding Atmosphere/Jetty is incorrect.
OK, original code working with Jetty 9.4 and Atmosphere 2.6.4 was only:
private void addAtmosphereServlet(final ServletContextHandler context, final String path) {
context.addServlet(new ServletHolder(new AtmosphereServlet()), path + "/*");
}
There was no other configuration, and it was working.
I think default configuration with new Jetty 10 and Atmosphere 2.7.7. was with Servlet30CometSupport, so result was the same like you had. So I played with configuration and tried also:
org.atmosphere.container.JSR356AsyncSupport;
org.atmosphere.container.Jetty9AsyncSupportWithWebSocket;
org.atmosphere.container.JettyAsyncSupportWithWebSocket;
But I didn't find correct working configuration. I also find some code Jetty10AsyncSupportWithWebSocket, I have tried to implement it, but there was some problem too.
So, if you can find correct websocket configuration for Jetty 10, it would be great.
Thanks.
@nopainsnogains12 Like I said in the thread, the sample works as expected with Jetty 10/11 so I won't spend more time on your code. I just think you need to bootstrap Atmosphere properly and remove your jsr356 code as it will conflict for sure.
Ok, don't spend time with my code and lets look to example embedded-jetty-websocket-chat
There is in class org.atmosphere.samples.chat.Main code:
ServletHolder atmosphereServletHolder = new ServletHolder(AtmosphereServlet.class);
atmosphereServletHolder.setInitParameter(ApplicationConfig.ANNOTATION_PACKAGE, "org.atmosphere.samples.chat");
atmosphereServletHolder.setInitParameter(ApplicationConfig.WEBSOCKET_CONTENT_TYPE, "application/json");
atmosphereServletHolder.setInitParameter(ApplicationConfig.PROPERTY_COMET_SUPPORT, **Jetty9AsyncSupportWithWebSocket**.class.getName());
atmosphereServletHolder.setAsyncSupported(true);
ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletContextHandler.addServlet(atmosphereServletHolder, "/chat/*");
I used that, but I have this exception:
INFO org.eclipse.jetty.server.Server - jetty-10.0.9; built: 2022-03-30T16:46:32.527Z; git: a9eaf8d5d73369acf610ce88f850c0d56c4b1113; jvm 11+28
INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@7008003{/opal-gateway,null,AVAILABLE}
INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@2f794cad{/,null,AVAILABLE}
INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@6b60a05a{HTTP/1.1, (http/1.1, h2c)}{0.0.0.0:27090}
INFO org.eclipse.jetty.server.Server - Started Server@7761ba5c{STARTING}[10.0.9,sto=30000] @40415ms
INFO com.siemens.condis.opal_gateway.http.AbstractHttpService - action=startupEnd timeMs=5806 httpPort=27090 httpsPort=28443
[qtp1040046002-29] ERROR org.atmosphere.cpr.AtmosphereFramework - Failed to initialize Atmosphere Framework
java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/servlet/WebSocketCreator
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3138)
at java.base/java.lang.Class.getConstructor0(Class.java:3343)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2554)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:260)
at org.atmosphere.cpr.AtmosphereFramework.doInitParams(AtmosphereFramework.java:1446)
at org.atmosphere.cpr.AtmosphereFramework.doInitParams(AtmosphereFramework.java:1421)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:873)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:833)
at org.atmosphere.cpr.AtmosphereFrameworkInitializer.configureFramework(AtmosphereFrameworkInitializer.java:76)
at org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:83)
at org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:79)
at org.atmosphere.cpr.AtmosphereServlet.init(AtmosphereServlet.java:74)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:633)
at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:486)
at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:731)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1378)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1300)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:171)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:562)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.servlet.WebSocketCreator
at org.codehaus.mojo.exec.URLClassLoaderBuilder$ExecJavaClassLoader.loadClass(URLClassLoaderBuilder.java:198)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
Missing class is class from Jetty 9 not from Jetty 10/11.
Are you sure, that Jetty 10 was really used with this example ??
One more thing, compiled class Jetty9AsyncSupportWithWebSocket$1.class contains:
org/atmosphere/container/Jetty9AsyncSupportWithWebSocket$1� 9org/eclipse/jetty/websocket/server/WebSocketServerFactory� �java/io/IOException� 8org/atmosphere/container/Jetty9AsyncSupportWithWebSocket� ((Lorg/atmosphere/cpr/AtmosphereConfig;)V� R(Ljavax/servlet/ServletContext;Lorg/eclipse/jetty/websocket/api/WebSocketPolicy;)V� buildCreator� ´(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/atmosphere/websocket/WebSocketProcessor;)Lorg/eclipse/jetty/websocket/servlet/WebSocketCreator;�
setCreator� 9(Lorg/eclipse/jetty/websocket/servlet/WebSocketCreator;)
org/eclipse/jetty/websocket/servlet/WebSocketCreator is from Jetty 9 so it looks, it was created with Jetty 9 libs.
There is org.eclipse.jetty.websocket.server.JettyWebSocketCreator in Jetty 10.
@nopainsnogains12 I totally agree with your comments, how did you fix the problem?
I have implemented my own Jetty10AsyncSupportWithWebSocket, Jetty10WebSocket and Jetty10WebSocketHandler classes. But I had to skip to the other project, so it was not really used. If you want, send me an e-mail, and I can send you my classes to continue.
…
On Wed, Sep 20, 2023 at 1:51 PM Liviu Carausu @.> wrote: @nopainsnogains12 https://github.com/nopainsnogains12 I totally agree with your comments, how did you fix the problem? — Reply to this email directly, view it on GitHub <#2477 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2KFU3DZBWPJOY3XNRUUCDTX3LKC5ANCNFSM5VOPHGKA . You are receiving this because you were mentioned.Message ID: @.>
I'm experiencing somewhat similar problems after Jetty 10 upgrade.
Would it be possible to see which kind of steps you did to solve this issue?