Afaik gwt:devmode is launching a GWT Jetty, rather than the GAE Jetty. The latter requires appengine:run with a launch profile env property & name appengine:run -Denv=haslistener
As you say: for IDE debugging: we need a Remote Java Application & jvmFlags, discussed at length here: https://stackoverflow.com/questions/138511/what-are-java-command-line-options-to-set-to-allow-jvm-to-be-remotely-debugged someone says: For Java 5 and above, run it with: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044 rather than Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n I havent tried this yet. With this setup the dev GAE server uses the cloud datastore (& blobstore I think). To fix, in the gloud CLI app run: gcloud components install cloud-datastore-emulator If you didnt install beta commands, it will prompt for that. cloud-datastore-emulator 2.3.1 before launch of GAE server run: gcloud beta emulators datastore start --project='prjname' --host-port=localhost:8081 --data-dir=C:\Users\tim_m\eclipse-workspace\Snptn\Snptn-server\src\main\webapp Set environment variable in the eclipse launch to attach this DATASTORE_EMULATOR environment Last time I looked: the local datastore viewer cant show objectify entities, only blobstore files. Re copying src/main/webapp files to the target folder: afaik that is done by maven-jar-plugin jar goal (jar:jar) which is invoked by calling package (phase) Btw I often read that the tbroyer multi-project pattern is better because it keeps server & client dependencies separated, but its a more complex pattern. Re the poms I attached here: 1 problem is inconsistencies in: <!-- To define the plugin version in your parent POM --> <pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> On Saturday, December 23, 2023 at 7:35:42 AM UTC Craig Mitchell wrote: > Managed to get server debugging working by adding: > > <jvmArg>-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</ > jvmArg> > > to the gwt-maven-plugin. > > And then creating a Remote JVM Debug launcher in IntelliJ (on port 5005), > that I run after running gwt:devmode. > > I'm surprised IntelliJ can't just automatically attach to the running > server. Is this what everyone does that uses gwt:devmode? > > On Saturday 23 December 2023 at 3:28:36 pm UTC+11 Craig Mitchell wrote: > >> Thanks Tim! Looking at your POM files, I see I missed adding: >> >> <outputDirectory >> >${project.build.directory}/${project.artifactId}-${project.version}/WEB-INF/classes</ >> outputDirectory> >> >> I also needed to: >> >> - Convert all my servlets to @WebServlet (as the GWT Jetty server >> didn't pick up my web.xml like the GAE server used to). >> - Give the GWT plugin the JVM arg >> "--add-opens java.base/java.lang=ALL-UNNAMED" for execeptions to be >> returned to the client. >> >> Strangely, Maven isn't copying my src/main/webapp files to the target >> folder, so I'm doing that manually with the maven-resources-plugin. >> >> So now GWT starts, dev compiles (including source maps), and runs >> beautifully, including RPC calls. Java17 runtime with a Java11 source >> level. Happy days! New POM attached. >> >> I've switched from using Eclipse to IntelliJ (because I no longer will be >> using any of the Eclipse plugins, and wanted a fresh start). However, >> debugging my server never hits the breakpoints. >> >> Do you use IntelliJ, do we need any special params to enable debug? >> >> [image: debug.png] >> >> I'm yet to get Google App Engine to work. When I try to access any of >> the GAE calls, I just get "No API environment is registered for this >> thread.". I think I need to setup the enviroment somehow now I no longer >> have a GAE server. >> >> Cheers! >> >> On Friday 22 December 2023 at 4:41:07 am UTC+11 [email protected] >> wrote: >> >>> These are my current poms, based on the tbroyer archetype. >>> Probably best to look at the latter first if youre not familiar with it. >>> >>> The launch is configured in the server pom: >>> >>> <profile> >>> <id>env-dev-gae1</id> >>> <activation> >>> <property> >>> <name>env</name> >>> <value>haslistener</value> >>> ... >>> <build> >>> <pluginManagement> >>> ... >>> >>> <groupId>com.google.cloud.tools</groupId> >>> <artifactId>appengine-maven-plugin</artifactId> >>> >>> A version of Jetty is attached by the appengine-maven-plugin config here >>> (afaik) >>> The eclipse launch goal is: appengine:run -Denv=haslistener >>> >>> Re GWT 2.10 : it can use JRE 17 but can only compile Java 11 source, >>> iirc. >>> >>> Poms are a bit messy but should help if you want to take this approach >>> >>> On Thursday, December 21, 2023 at 11:36:51 AM UTC Craig Mitchell wrote: >>> >>>> Forgot to mention. My target is Java 17, but my source is Java 1.8. >>>> >>>> So: >>>> <properties> >>>> <maven.compiler.source>1.8</maven.compiler.source> >>>> <maven.compiler.target>17</maven.compiler.target> >>>> </properties> >>>> >>>> And: >>>> <pluginManagement> >>>> <plugins> >>>> <plugin> >>>> <groupId>org.apache.maven.plugins</groupId> >>>> <artifactId>maven-compiler-plugin</artifactId> >>>> <version>3.11.0</version> >>>> <configuration> >>>> <source>${maven.compiler.source}</source> >>>> <target>${maven.compiler.target}</target> >>>> </configuration> >>>> </plugin> >>>> <plugin> >>>> <groupId>org.apache.maven.plugins</groupId> >>>> <artifactId>maven-resources-plugin</artifactId> >>>> <version>3.3.1</version> >>>> </plugin> >>>> </plugins> >>>> </pluginManagement> >>>> >>>> I've attached my current POM (which isn't working, so don't copy it >>>> 🙂), but if you can see my mistake, please let me know. >>>> >>>> Thanks again! >>>> On Thursday 21 December 2023 at 10:27:01 pm UTC+11 Craig Mitchell wrote: >>>> >>>>> Hi Tim, >>>>> >>>>> I thought GWT 2.10.0 supported Java17. From the release notes: >>>>> https://www.gwtproject.org/release-notes.html#Release_Notes_2_10_0 >>>>> *Tested support for running on Java 17, dropped remaining support for >>>>> running on Java 7.* >>>>> >>>>> I'm also using appengine-maven-plugin 2.5.0. >>>>> <plugin> >>>>> <groupId>com.google.cloud.tools</groupId> >>>>> <artifactId>appengine-maven-plugin</artifactId> >>>>> <version>2.5.0</version> >>>>> <configuration> >>>>> <projectId>headtoheaddrifting</projectId> >>>>> <version>GCLOUD_CONFIG</version> >>>>> </configuration> >>>>> </plugin> >>>>> >>>>> Along with GWT plugin: >>>>> <plugin> >>>>> <groupId>net.ltgt.gwt.maven</groupId> >>>>> <artifactId>gwt-maven-plugin</artifactId> >>>>> <version>1.1.0</version> >>>>> <extensions>true</extensions> >>>>> <configuration> >>>>> <moduleName>team.drift.DriftTeam</moduleName> >>>>> <moduleShortName>dt</moduleShortName> >>>>> <packaging>gwt-lib</packaging> >>>>> <launcherDir>${project.build.directory}/gwt/launcherDir</launcherDir> >>>>> <warDir>${project.build.directory}/drift-team-1.0-SNAPSHOT</warDir> >>>>> <startupUrls> >>>>> <startupUrl>index.html</startupUrl> >>>>> </startupUrls> >>>>> </configuration> >>>>> </plugin> >>>>> >>>>> Running: "mvn gwt:devmode" I can get it to start the Jetty server and >>>>> GWT code server. It finds my project, but currently, when opening the >>>>> browser it says: >>>>> HTTP ERROR 503 Service Unavailable >>>>> URI: /index.html >>>>> STATUS: 503 >>>>> MESSAGE: Service Unavailable >>>>> SERVLET: - >>>>> >>>>> I put my web assets in src/main/webapp and I don't think it's seeing >>>>> them. Plus I don't think it's seeing my web.xml that's in >>>>> src/main/webapp/WEB-INF/web.xml >>>>> >>>>> Maybe they need to be copied to the target directory or somewhere, or >>>>> the GWT plugin pointed to where they are somehow. Not sure. Any help is >>>>> greatly appreaciated. >>>>> >>>>> >>>>> On Thursday 21 December 2023 at 4:06:46 am UTC+11 >>>>> [email protected] wrote: >>>>> >>>>>> I havent tried raising the Java level yet, its still JavaSE-1.8. >>>>>> Got as far as using latest versions: >>>>>> JDK 21 >>>>>> gcloud CLI app & cloudSdkVersion 457.0.0 >>>>>> appengine-maven-plugin 2.5.0 >>>>>> >>>>>> To get it to run, so far: >>>>>> 1 I had to remove all DOCTYPE declarations in xml files in the >>>>>> server project (new restrictions on DTD) >>>>>> 2 appengine-maven-plugin 2.5.0 requires: >>>>>> <configuration> >>>>>> <jvmFlags> >>>>>> <item>--add-opens</item> >>>>>> <item>java.base/java.util=ALL-UNNAMED</item> >>>>>> This stops 500 Server Error which I've not seen before: >>>>>> GCLOUD: java.lang.reflect.InaccessibleObjectException: >>>>>> Unable to make field accessible: module java.base does not "opens >>>>>> java.util" to unnamed module @2c95ac9e >>>>>> >>>>>> So Craig, you say with Java17 on GAE, there isn't a web server >>>>>> included anymore. >>>>>> So this has to be defined somewhere in appengine-maven-plugin ? >>>>>> The minimum level to avoid being shut down on GAE standard is >8 >>>>>> & 11 is the max for GWT, so that would seem do for now, why Java 17 ? >>>>>> >>>>>> On Wednesday, December 20, 2023 at 4:46:03 AM UTC Craig Mitchell >>>>>> wrote: >>>>>> >>>>>>> No worries not posting the POMs Tim. >>>>>>> >>>>>>> The bit I'm struggling with, the old Java 8 version had its own GAE >>>>>>> server. So I would run that, and a GWT Code Server. Easy! >>>>>>> >>>>>>> *btw:* I'm talking about GAE Standard. GAE Flexible you can do >>>>>>> whatever you want, but that's more work and more expensive. >>>>>>> >>>>>>> Now with the upgrade to Java17 on GAE, there isn't a web server >>>>>>> included anymore. It's up to you to supply one. I would assume when >>>>>>> you >>>>>>> deploy it, it doesn't actually use your server, but what setup is GAE >>>>>>> expecting for the deploy? >>>>>>> >>>>>>> I see there is a SpringBoot GAE example, so it might be easier to >>>>>>> use that, and get GWT to work with SpringBoot. Not sure. Very >>>>>>> interested >>>>>>> to hear what you're doing. >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> On Wednesday 20 December 2023 at 1:51:55 pm UTC+11 >>>>>>> [email protected] wrote: >>>>>>> >>>>>>>> For some years I've been deploying GWT 2.8.2 to GAE with Maven & >>>>>>>> Google Cloud Tools. >>>>>>>> I now find GAE is not supporting Java 8 after January, so currently >>>>>>>> upgrading (rather slowly). >>>>>>>> There are 4 long POM files, probably better to mail them then post >>>>>>>> a distilled version here ? >>>>>>>> >>>>>>>> On Sunday, December 17, 2023 at 5:20:56 AM UTC Craig Mitchell wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> The instructions here >>>>>>>>> https://www.gwtproject.org/doc/latest/tutorial/appengine.html are >>>>>>>>> no longer valid, as the Google Plugin for Eclipse is now dead (Google >>>>>>>>> no >>>>>>>>> longer supports Java 1.8, and the Google Plugin for Eclipse doesn't >>>>>>>>> support >>>>>>>>> any Eclipse versions that support anything after Java 1.8). Ref: >>>>>>>>> https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/3710 >>>>>>>>> >>>>>>>>> The new approach with GAE is to use Maven or Gradle with Google >>>>>>>>> Cloud Tools. >>>>>>>>> >>>>>>>>> I've been struggling to work out how this is supposed to happen. >>>>>>>>> It looks like we now have to provide our own Web Server for GAE, but >>>>>>>>> can we >>>>>>>>> use the Jetty server that GWT uses for development? I assume the >>>>>>>>> deploy >>>>>>>>> build would not include the Jetty web server? >>>>>>>>> >>>>>>>>> If anyone has deployed a GWT app to GAE with Maven and the new >>>>>>>>> Google Cloud Tools, it would be great if you could give high level >>>>>>>>> instructions on how it's all supposed to fit together. >>>>>>>>> >>>>>>>>> An example Maven POM file with both the Google Cloud Tools, and >>>>>>>>> GWT would be even better. 🙂 >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>> -- 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 on the web visit https://groups.google.com/d/msgid/google-web-toolkit/c9aadbf3-532a-4c5c-8072-00e5ad7e9413n%40googlegroups.com.
