Wednesday, February 21, 2024

Re: Deploy to Google App Engine (GAE)

I've been trying this app engine sample for Java 11+ which uses a JAR packaged artifact that is installed locally:
it provides a Main class to instantiate an HTTP server to run an embedded web application WAR file.
It has explicit jetty 11 dependencies.

The WAR project is
The WAR is run in a local server with:
mvn exec:java -Dexec.args="../helloworld-servlet/target/helloworld.war"

The problem I have is when I include GWT in the WAR project this draws in Jetty 9 & other dependencies
which get copied to the cloud-deployment dependencies directory. I tried to prevent this with exclusions & 
explicit dependencies  in the WAR project but the final dependencies are always at least sightly affected & cloud-deploy
fails with some kind of 503.

Currently I'm trying to use tomcat-embed-core but now the problem is locally installed maven dependencies 
seem to be inaccessible at runtime. Is anyone aware of any samples that can help ? 
Thanks



On Wednesday, 21 February 2024 at 11:17:19 GMT, Thomas Broyer <t.broyer@gmail.com> wrote:


Fwiw, I haven't used WARs for years (and by years I mean more than a decade), but the archetype is only there to help you get started with cleanly separated client/shared/server modules, and I don't want to impose my own opinionated way of building apps to others (or possibly start bikeshedding wars (sic!)), so I chose a WAR target and tried to find a plugin to make it easy to run the app, so Jetty it was (there used to be a Tomcat plugin that worked really well, better than Jetty even, but it's been un maintained for years so…)
Of course if you want something that scaffolds everything for you, then go with Spring (I personally can't stand this ecosystem but YMMV)

(also fwiw, I haven't really used Maven for years either, and never used archetypes other than for quickly building bug repros/MCVEs or as examples/inspiration for projects, that I always start from scratch)
On Wednesday, February 21, 2024 at 1:20:03 AM UTC+1 ma...@craig-mitchell.com wrote:
Now I have it all working.  This is what I found:

Google App Engine Standard no longer gives you a web server, so you need to provide your own.
If you want to run on the cheap F1 Google App Engine instances, Tomcat is too heavy, and you'll run out of memory.  You can easily switch Spring Boot to use Undertow, which is a lightweight web server, and runs great on the F1 instances.

Cheers.
On Wednesday 27 December 2023 at 4:15:34 am UTC+11 tim_mac...@yahoo.co.uk wrote:
Maybe this thread is gettig a bit off-topic for gwt ? maybe more suitable for Stackoverflow
On Tuesday, December 26, 2023 at 12:21:05 AM UTC Craig Mitchell wrote:
Odd, my message was deleted.  Maybe it was too boring.  :-D

The highlights:
  • I'm not sure if you get a Jetty server bundled or not if you use the legacy bundled services.  The documentation is a little ambiguous to me.
  • You do get a stand alone server "dev server" that you can deploy a war to.  Great for final testing, but it's unclear if you'll be able to debug on it.
  • Your static files worked because the legacy version allows a war file, and you have the maven-war-plugin in your POM.
  • If I switch to SpringBoot, I'll move my static files to either a /public or /static directory.
Personally, I'm going to skip the legacy bundled services, and just use the second-generation Java runtime with my own web server.

Cheers!

On Monday 25 December 2023 at 3:48:23 am UTC+11 tim_mac...@yahoo.co.uk wrote:
Looks like Cloud CLI provides a dev server if  using the legacy bundled services (App Engine API JAR)?
If you are using the legacy bundled services, the second-generation Java runtimes provide the Jetty web-serving framework.
https://cloud.google.com/appengine/migration-center/standard/migrate-to-second-gen/java-differences#framework_flexibility
The Google Cloud CLI for Java includes a local development server for testing your application on your computer. The local development server emulates the App Engine Java runtime environment and all of its services, including Datastore.
What do you think ?

Re. static files: in my setup appengine:deploy at base directory server project deploys  SNAPSHOT.war. 
Static files in \src\main\webapp end up in its root directory. 
says in the case of a JAR-file, src/main/webapp has no special meaning and goes on about jar directories that work with Springboot.


--
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 google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-web-toolkit/bf837675-5a64-4cc5-8b1d-f4884be1a773n%40googlegroups.com
.

No comments:

Post a Comment