Thank you, Chris, for the feedback. The changes are needed in the Spring WebSocket library to ensure Tomcat 10.1 compatibility. https://github.com/spring-projects/spring-framework/pull/29434
As I understand, this means I should be updating the Spring libraries used in the applications to be deployed with Tomcat 10.1. I was exploring the possibility of performing Tomcat 10 upgrade independent of the upgrades of TPIPs used the application (mainly Spring 5 to 6). And using migration tool seemed a very promising approach. Now looking at issue like this, seems like it's ideal to have both Tomcat upgrade and the application TPIPs upgrade go together. Thanks, Amit -----Original Message----- From: Christopher Schultz <ch...@christopherschultz.net> Sent: Thursday, April 4, 2024 9:37 PM To: users@tomcat.apache.org Subject: Re: Migrating from Tomcat 9.0.x to 10.1.x CAUTION: This email originated from outside the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. If you believe this is a phishing email, use the Report to Cybersecurity icon in Outlook. Amit, On 4/4/24 22:21, Amit Pande wrote: > I am in the process of migrating from Tomcat 9 (9.0.87) to Tomcat 10.1 > (10.1.20). > > https://tomcat.apache.org/migration-10.1.html Using the migration tool, I > have migrated the applications (which use Spring libraries 5.x). > > While testing the migrated apps( which use web socket), ran into: > > > org.springframework.web.util.NestedServletException: Handler dispatch > failed; nested exception is java.lang.NoSuchMethodError: 'void > org.apache.tomcat.websocket.server.WsServerContainer.doUpgrade(jakarta > .servlet.http.HttpServletRequest, > jakarta.servlet.http.HttpServletResponse, > jakarta.websocket.server.ServerEndpointConfig, java.util.Map) > > > https://gith/ > ub.com%2Fapache%2Ftomcat%2Fblob%2F9.0.x%2Fjava%2Forg%2Fapache%2Ftomcat > %2Fwebsocket%2Fserver%2FWsServerContainer.java&data=05%7C02%7CAmit.Pan > de%40veritas.com%7C2650bfb140d94911624408dc55195c23%7Cfc8e13c0422c4c55 > b3eaca318e6cac32%7C0%7C0%7C638478814607427868%7CUnknown%7CTWFpbGZsb3d8 > eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0 > %7C%7C%7C&sdata=w69RggozFPZcifxDJOHnII9jtZJJ29qZQSkDNNFYTzE%3D&reserve > d=0 > > * @deprecated This method will be removed in Apache Tomcat 10.1 onwards. > It has been replaced by > * {@link #upgradeHttpToWebSocket(Object, Object, > ServerEndpointConfig, Map)} > */ > @Deprecated > public void doUpgrade(HttpServletRequest request, HttpServletResponse > response, ServerEndpointConfig sec, > Map<String, String> pathParams) throws ServletException, > IOException { > UpgradeUtil.doUpgrade(this, request, response, sec, pathParams); > } > > Is this an issue with the migration tool to appropriately replace the removed > methods? > > Or the applications using web sockets with Tomcat 9.x are required to be > updated before moving to Tomcat 10.1, instead of using the migration tool as > an intermediate step to upgrade to Tomcat 10.1 without having to update the > applications at the same time? > FWIW, Spring 5 to Spring 6 is a major upgrade and Tomcat 10 is a requirement. The Migration Tool doesn't rewrite your code, it only rewrites the class names referenced by your class files. (Okay, it also re-writes strings in your files which match those class names as well.) But it will not change method calls. It is not a Deprecation Cleanup Tool. You should change your Java EE-compatible application to use upgradeHttpToWebSocket(Object, Object, ServerEndpointConfig, Map) first, then run the Migration Tool on your application. -chris --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org