I'm developing a GWT app that will be deployed to GAE. I have installed the Google-Eclipse plugin which also pulled down the GWT and GAE SDKs. But now that I am sitting down and actually thinking about things, I've become very confused as to how to both debug and run apps locally on my machine.
Normally, when I have a Java web app (I deploy to Tomcat; I'm just familiar with it), my options are as follows:
- Create a remote Debug Configuration for my app, deploy the
WAR
to my local Tomcat container, but in such a way that I can debug it (set breakpoints, step through server-side code) right from inside Eclipse - Just deploy it to the Tomcat container, fire up a browser at
http://localhost:8080/MyApp
and start using/manually-testing the app locally
I want to accomplish the same, but with GWT and GAE there are so many options for both, and they become exponentially more confusing (to a newcomer such as myself) when you pair them together on the same machine:
Ultimately, I'd like to be able to do the following:
- Debug the server app, including setting breakpoints, stepping through code, etc., right from inside Eclipse
- Debug the client app, including setting breakpoints, stepping through code, etc., from inside a browser plugin like Firebug or Chrome Developer Tools, locally on my machine
- Debug the app (both client- and server-side code in tandem), including setting breakpoints, stepping through code, etc., right from inside Eclipse
- Same as above (debug the entire app, client- and server-side), from inside Eclipse, but where the server is running on a different (remote) machine. This way I can debug my app as it is running on my QA machine/environment, right from inside the Eclipse instance on my development machine
- Run the app locally and simulate production; that is, deploy the backend to my GAE app dev server, and then open up a browser and go to the correct URL for accessing my app as it is served up by the local GAE dev appserver
I think the root of my confusion stems from the fact that both GWT and GAE SDKs run in so-called "dev modes", and because they address different tiers (client and server) its tough to wrap my head around what setup/configs are necessary to be able to isolate them if needed, or test them in tandem if needed. Thanks in advance for any help here!