I
am (trying to) upgrade our GWT-based legacy application to use newer
Hibernate, Spring and other library versions. After some (substantial)
pull-ups this works mostly fine by now when deploying a fully generated
and packaged .war file, but building this thing always takes forever and
day (the infamous permutations and other steps...).
Since the Jetty that's built into the GWT plugin has issues with newer
(multi-release) .jar files (see my different discussion) I had to switch
deployment of the application to Tomcat (which is our target server
anyway)
also for development.
To speed up the development cycle I
am thus trying to get this thing also to run as unpacked file using
Eclipse's Tomcat "server bridge". This plugin deploys a web application
to a temporary directory in the eclipse workspace and then starts Tomcat
passing it the proper settings using
VM options like: -Dcatalina.base="<workspace>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0"
-Dcatalina.home="C:\Program Files\Apache Software Foundation\Tomcat
8.5" -Dwtp.deploy="<workspace>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps".
With
that the application begins to start up, I get to the point where I login
and get the initial index.html page but as soon as some GWT-generated
Java-script has to be loaded things stall. As I had to learn the entire
GWT generated code which - as I found out - gets compiled into
directories named like C:\Users\<user>\AppData\Local\Temp\gwt-codeserver-8682038074388630768.tmp\<java_package_name>.WebWar\compile-1\war\<application_name>
is *not* copied over or linked into the
wtpwebapps directory.
I experimented a bit and if one creates a Junction (a kind of soft-link in Windows) in the
wtpwebapps\<application>
directory pointing to that generated GWT code then the application
indeed starts loading the UI. However, at some point it invariably dies
with a popup that it couldn't load the application from Super Dev Mode
Server at
http://localhost:9876.
So
there are (at least) two things missing: the GWT code has to be hooked
or copied into the generated server configuration and apparently there
must also be a Dev Server available. At this point - since I don't
understand this (Super) Dev Mode well enough - I decided to ask in this
forum:
Has anyone got this working so that one
can deploy a GWT application to a local Tomcat instance without first
having to pack everything up and deploy as a .war file, so that one can
essentially continue to run and debug as one used to using Jetty before
using the maven goals gwt:run or gwt:debug?
Is that described or documented anywhere? Or would some kind soul mind to share his/her knowledge on how to get this working?
It
doesn't have to be for Eclipse - IntelliJ would be ok as well. The
point is that it should not require the lengthy build-package-deploy
cycle because a cycle-time of >10 minutes is just unbearable for
development.
Any suggestions welcome!