Does anyone have an example of how to setup the embedded server with dev mode, or even better, super dev mode? I'm upgrading a large Gradle-based enterprise application from Spring 5 to Spring 6 and migrated from javax to jakarta and have had constant issues from Jetty's compatibility problems.
Any pointers would be a tremendous help. I'm currently trying to use tomcat-catalina-10.1 as the embedded server but have not been able to get it to start properly. On Monday, June 17, 2024 at 9:09:58 PM UTC-5 Craig Mitchell wrote: > It's when you see crazy long command lines like that, you start to > appreaciate Maven (or Gradle). The same command in Maven is "mvn > gwt:codeserver -pl *-client" (yes, I know you see still need to setup > the launcherDir, warDir, etc in the pom.xml files, but that seems much > easier than one huge command line). > > On Tuesday 18 June 2024 at 2:17:26 am UTC+10 Jens wrote: > >> > If using maven... [I'm not]... If not, please give us more detail about >> what you are using (or intend to use). >> After further investigation, much of my issues around this seem to be >> that the. appropriate java command to run the web app (or Jetty itself) is >> not being assembled correctly by either Eclipse, the GWT plugin, or both. >> There are various options that are needed and are not properly set. That >> said, even if I do/can get that working, I don't think that's the right >> approach. As you're going to deprecate the embedded Jetty server, I should >> do whatever is needed there to run my own external server(s). That's >> what's unclear to me. There are ancient references to it in the >> documentation at gwt.project.org, but I'm unclear on what is really >> needed. Do I need to set up and run a code server with my own Jetty or >> Tomcat local installation? If so, how is that set up? Or do I need to run >> my own app server (again, either Jetty or Tomcat). The web app setup is >> obvious (I think... or are there special runtime parameters to direct it to >> the proper code server port?). Forgive my ignorance on this, but if this >> is the path forward for GWT in general, I'd really like to see some clear >> documentation on how to set this up or at least what it is going to look >> like (in general, no specifics, obviously it should involve thinking and >> work on my part). Last note: I am assuming the code server will be easier >> to get working with Java 17 modules because it will (in my case) have less >> jar dependencies, as it only needs them for shared and client code. That >> said... I might need to run both externally to get it all sorted out. >> Again, my own thinking on this isn't that clear because I'm not in the >> weeds enough on what the plugin is really doing and how things work under >> the hood. >> >> To give a shorter, more direct answer: I want to develop code in Eclipse >> in Java 17, and be able to run the code server and web app any way >> possible, so that GWT code compiles/recompiles as needed, and the web app >> can be accessed in the browser, and I can do iterative test-code-test-code >> development on a daily basis. >> >> >> Traditionally GWT SDK only had the class com.google.gwt.dev.DevMode. It >> is responsible to launch classic dev mode (the one that does require an >> obsolete browser plugin) or SuperDevMode together with an embedded servlet >> container, by default Jetty. SuperDevMode is implemented in class >> com.google.gwt.dev.codeserver.CodeServer and DevMode basically calls this >> class if you request it to launch SuperDevMode (which is the default >> behavior). Class DevMode has a parameter "-noserver" which skips starting >> Jetty and assumes you have your own server and deployment running. Because >> we advocate running your own servlet container, e.g. Jetty/Tomcat/..., it >> is enough to just launch CodeServer yourself. However you could also >> continue to use class DevMode and replace the embedded Jetty with your own >> implementation using DevMode -server your.impl.of.ServletContainerLauncher. >> Your own implementation could then be based on Jetty 12 for example (and >> possibly jakarta) >> >> Personally I use Gradle and have a task that just launches CodeServer by >> executing a command line. I am pretty sure you could also write a similar >> ANT task using your current ANT setup. The command line looks like >> >> com.google.gwt.dev.codeserver.CodeServer -sourceLevel 11 -strict >> -failOnError - bindAddress 0.0.0.0 -port 9876 -style PRETTY >> -XmethodNameDisplayMode ABBREVIATED -workDir /client-project/build/gwt/work >> -launcherDir /client-project/build/gwt/war -src >> /shared-project/src/main/java -src /shared-project/src/main/resources >> com.example.MyGwtModule >> >> The classpath should contain gwt-user/gwt-dev/gwt-codeserver, all >> compile-time dependencies you need for GWT compilation as well as classes + >> sources + resources related to your GWT UI and DTOs. You would need to use >> ANT fileset/dirset/files to include/exclude only the files of your single >> project that are relevant for GWT compilation. Once you have that set of >> files figured out you can run GWT CodeServer in isolation via ANT with its >> own GWT focused classpath and you should not have any trouble with other >> dependencies that you need on the server only. >> >> Once you have that running, you need to decide how you want to run a >> servlet container. Personaly I use Docker + docker-compose + Jetty image + >> shell script. >> >> >> > -- 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/e391c8f6-c957-481a-bd83-8f9cf1803353n%40googlegroups.com.
