isapir / lucee-websocket

Enables server WebSockets for Lucee via JSR-356 compliant servlet containers (e.g. Tomcat 8, Jetty 9.1, etc.)
GNU Lesser General Public License v2.1
17 stars 6 forks source link

Issues with Lucee 5.3.8.206 and Tomcat 9.0.46 #26

Open redtopia opened 2 years ago

redtopia commented 2 years ago

Since upgrading my local dev environment with a fresh install of Lucee 5.3.8.206, which uses Tomcat 9.0.46, I am having issues with my websocket implementation, which was previously working on Tomcat 8 (not sure which version of Lucee/Tomcat I was using).

The errors I see in the websocket.log file are:

"DEBUG","http-nio-8888-exec-4","01/07/2022","09:55:19","myapp","Failed to register endpoint /ws/messages/thread/{channel}: Multiple Endpoints may not be deployed to the same path [/ws/messages/thread/{channel}] : existing endpoint was [class net.twentyonesolutions.lucee.websocket.LuceeEndpoint] and new endpoint is [class net.twentyonesolutions.lucee.websocket.LuceeEndpoint]"
"DEBUG","http-nio-8888-exec-4","01/07/2022","09:55:19","myapp","Failed to register endpoint /ws/comments/{channel}: Deployment of WebSocket Endpoints to the web application with path [] in host [Catalina/local.myapp.com] is not permitted due to the failure of a previous deployment"
"DEBUG","http-nio-8888-exec-4","01/07/2022","09:55:19","myapp","Failed to register endpoint /ws/user/{channel}: Deployment of WebSocket Endpoints to the web application with path [] in host [Catalina/local.myapp.com] is not permitted due to the failure of a previous deployment"
"DEBUG","http-nio-8888-exec-4","01/07/2022","09:55:19","myapp","Failed to register endpoint /ws/products/{channel}: Deployment of WebSocket Endpoints to the web application with path [] in host [Catalina/local.myapp.com] is not permitted due to the failure of a previous deployment"
"DEBUG","http-nio-8888-exec-6","01/07/2022","09:55:20","websocket","connection 0 enter onClose(); CloseReason: code [1001], reason [null]"
"DEBUG","http-nio-8888-exec-6","01/07/2022","09:55:20","websocket","calling listener.onClose()"
"DEBUG","Timer-6","01/07/2022","09:56:10","websocket","listener.onUnsubscribe() is not implemented"
"INFO","Timer-6","01/07/2022","09:56:10","websocket","0 unsubscribed from usr_developer"
"DEBUG","Timer-6","01/07/2022","09:56:10","websocket","listener.onChannelClose() is not implemented"
"INFO","Timer-6","01/07/2022","09:56:10","websocket","channel usr_developer closed"

These log entries occur after I reset my app by executing onApplicationStart() to my already running application to force a reload of all components and resources. After this happens, I will not be able to connect to any websocket endpoints until I restart the Apache Tomcat 9.0 Lucee service (on windows).

I suspect the issue occurs when I call WebsocketRegister() after it has previously been called. Note that this was not an issue in Tomcat 8.