many thanks @Colin and @Jens I'm currently testing a *partial migration* of my GWT application to *Java 11 and GWT 2.10*. To get a better idea of the work involved, I tried compiling just one module of the project.
Here’s what I’ve done so far: - Patched and recompiled gxt-2.3.1a to make it compatible with GWT 2.10 ( https://groups.google.com/g/google-web-toolkit/c/If897MPqvw0/m/bSWnmuz9BwAJ?pli=1 = - Installed the modified JAR locally in my Maven repository - Tried compiling a single module — but run into several issues Main issues I’m facing: - *Component (GXT) is no longer compatible with Widget (GWT)* ===> breaks all UI layouts - Many GXT-based custom components like com.extjs.gxt.ui.client.widget.form.TextField, LabelField, etc. are *not compatible anymore* - *Stricter typing in Java 11 + GWT 2.10* ===> leads to many generic/interface mismatches - Several dependencies also need to be replaced or upgraded My question: Given that the application is *heavily dependent on GXT 2.3.1a*, especially for the client-side (grids, forms, fields, etc.), *Is it worth trying to patch and adapt GXT further?* Or should I progressively migrate everything to *native GWT widgets* (like Composite, DataGrid, etc.)? Has anyone gone through a similar migration? *Are all these issues common* when trying to use a patched GXT with GWT 2.10? Any advice or shared experience would be super appreciated! Thanks a lot wejden Le dimanche 23 mars 2025 à 20:26:32 UTC+1, Colin Alworth a écrit : > #1 I think Jens covers it well - something is almost certainly wrong with > your modified jar or how the classpath is built. > > For #2, the "-server" argument lets you specify a > com.google.gwt.core.ext.ServletContainerLauncher type, so > org.eclipse.jetty.server.Server will not suffice. If you do not specify > one, as of GWT 2.12 the old default of > com.google.gwt.dev.shell.jetty.JettyLauncher (using a wrapped Jetty 9) is > still used, which is what it sounds like you want anyway. This will change > in the future, see https://github.com/gwtproject/gwt/issues/10057 and > linked issues, If you're interested in something newer than the default > Jetty 9, also see > https://groups.google.com/g/google-web-toolkit/c/3dSoHpHD5jY/m/faAeQeJ-AwAJ > and > https://groups.google.com/g/google-web-toolkit-contributors/c/7jvGVaiSUdI. > > Note that Jetty 9 sometimes doesn't behave nicely when it tries to scan > your classpath - if it finds something that it can't understand while > looking for annotations, it will break. This will result in an error > something like > java.lang.IllegalArgumentException: Unsupported class file major version 64 > at org.objectweb.asm.ClassReader.<init>(ClassReader.java:199) > at org.objectweb.asm.ClassReader.<init>(ClassReader.java:180) > at org.objectweb.asm.ClassReader.<init>(ClassReader.java:166) > at org.objectweb.asm.ClassReader.<init>(ClassReader.java:287) > at > org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:932) > at > org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:734) > ... 6 more > > The workaround discussed at > https://github.com/gwtproject/gwt/issues/9433#issuecomment-250104877 may > help here. > > #3, nothing special should be required - besides the wrong instance passed > to -server, what errors are you seeing? > > Re your note: you should not need to deploy a complete war to tomcat for > local development - the best way to think about this is "If I wasn't using > GWT, how would I want to debug my server", then amend that slightly to > permit SDM to change files in the same sort of way that you would either > manually edit JS/HTML or you'd use a tool like npm/etc. > > On Sunday, March 23, 2025 at 3:23:07 AM UTC-5 [email protected] wrote: > >> Hello! >> >> I am following your conversation because i am working on same issues : >> >> Migrating GWT/GXT project to GWT 2.10 + Java 11 + Jetty 9 >> >> *Initial Context on Legacy project using:* >> >> - >> >> GWT 2.8.2 >> - >> >> GXT 2.3.1a-gwt22 >> - >> >> Embedded Jetty >> - >> >> Java 8 >> >> *Migration Goal* >> >> Update the project to use: >> >> - >> >> Java 11 >> - >> >> GWT 2.10.1 >> - >> >> Jetty 9 >> - >> >> A custom-built GXT version compatible with GWT 2.10 >> >> *Steps Already Completed * >> >> 1. GXT Recompilation and Installation >> >> - >> >> Cloned the GXT 2.3.1a sources. >> - >> >> Adapted the code to compile with GWT 2.10.1. >> - >> >> Successfully built gxt-main-2.3.1a-gwt2.10.jar. >> - >> >> Installed it locally using: >> >> >> 2. Maven Configuration Updated >> >> - >> >> Switched to Java 11 using maven.compiler.source and target. >> - >> >> GWT updated to version 2.10.1. >> - >> >> Added the locally installed GXT dependency >> >> 3. GWT Module Inheritance Added >> 4. GXT Verification >> >> - >> >> Confirmed GXT.gwt.xml is present inside the JAR (jar tf checked). >> - >> >> JAR added to the Eclipse launch configuration (Run Configurations > >> Classpath). >> >> Jetty Configuration Jetty 9 Already in Use >> >> - >> >> Version confirmed: 9.4.52.v20230823 (via mvn dependency:tree). >> - >> >> Dependencies have <scope>compile</scope> (not provided). >> - >> >> jetty-server-9.4.52.v20230823.jar appears in the Eclipse classpath. >> >> >> *Current Blocking Issues* >> >> 1. GXT Not Found at Runtime >> >> When launching GWT DevMode: Unable to find >> 'com/extjs/gxt/ui/GXT.gwt.xml' on your classpath >> >> Despite: >> >> - >> >> The file being present in the JAR. >> - >> >> The JAR being listed in the Run Configurations > Classpath. >> - >> >> Proper inheritance in the .gwt.xml file. >> >> 2. Jetty Server Class Not Found >> >> Tried using the argument: >> >> -server org.eclipse.jetty.server.Server >> >> *ClassNotFoundException: org.eclipse.jetty.server.*Server >> >> Even though the JAR is present in the classpath, and Jetty 9 is confirmed >> to be in use. >> >> *So i need to understand* >> >> 1. >> >> Why is GWT DevMode (or CodeServer) unable to >> find com.extjs.gxt.ui.GXT.gwt.xml, even though it is present and properly >> declared? >> 2. >> >> How can I resolve >> the ClassNotFoundException for org.eclipse.jetty.server.Server, despite >> Jetty 9 being correctly added? >> 3. >> >> Are there any special configurations or recommendations for running >> GWT 2.10 with Jetty 9 and Java 11 in Eclipse? >> >> *Important note:* I do *not* want to switch to a Tomcat 9 deployment >> (war packaging) as a workaround. The current state of the project makes the >> packaging and deployment process extremely slow — over *one hour* just >> to build and deploy. Therefore, I need a solution that works using GWT >> Super DevMode and embedded Jetty >> >> Thanks in advance for any help or suggestions. >> >> >> __wejden >> >> >> >> Le mercredi 12 mars 2025 à 17:32:47 UTC+1, Jens a écrit : >> >> As Colin said you can use @WebServlet and enable configuration via >> annotation scanning in your servlet container. However if your application >> is large then scanning might slow your deployment down. If deployment time >> is not a concern then it is the easiest solution. There are additional >> annotations for other classes you normally add to your web.xml. >> >> If you don't like class scanning during deployment time you can write an >> annotation processor that picks up all these @WebServlet annotated servlets >> and generates a class that registers them using the ServletContext API. >> Then you use that generated class in a custom ServletContextListener >> implementation to register everything. That ServletContextListener would >> then be the only entry in your web.xml. Alternatively, if you use Jetty as >> servlet container you can use Jetty's quickstart module to let it generate >> a web.xml by scanning your code once (as part of the build process). >> >> -- J. >> >> >> -- You received this message because you are subscribed to the Google Groups "GWT Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/db0a94c4-6dc7-45f3-b203-671e677b271en%40googlegroups.com.
