I thought I had this working, and I do, but only in one project. Now I'm trying to recreate the magic, and it's not working.
I've an older project that I started running SuperDevMode from a console and DevMode from Eclipse. Since I wanted some features of Tomcat, I switched to running the app as a Remote Java Application. Debugging works. Moreover, when I make a change in a server-only class--like a servlet--the change is there on the very next run.
I want to recreate what I've done and document it for the next guy. Accordingly I
1) Generate a new project, Foo, using the gwt-maven-plugin archetype.
3) Add
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
to the module file.
4) Run `mvn clean generate-sources gwt:run` from a console.
5) Launch the app in the browser then quit DevMode.
6) Copy target/Foo-1.0-SNAPSHOT to $CATALINA_HOME/webapps/Foo
7) Run `mvn clean generate-sources gwt:run-codeserver` from a console.
8) In Eclipse, create a Debug Remote Java Application on Foo and run it.
10) Turn Dev Mode On. Compile. Project runs.
If I put a breakpoint in my servlet (GreetingServiceImpl), it breaks in the Eclipse debugger.
11) Disconnect from Tomcat (in Eclipse). Modify GreetingServiceImpl.java. Restart the remote debug in Eclipse.
12) In the browser, turn Dev Mode Off, turn Dev Mode On, and Compile
When I call the RPC function, the change made in Step #11 does NOT take effect, though I can see those changes while stepping through GreetingServiceImpl in the Eclipse debugger.
What could I be missing? As I said, in my older project (which has gone through some evolution from 2.5.1 to 2.6.0, from DevMode to SuperDevMode and -noserver, from Java 1.5 to 1.6 to 1.7, etc.) server-side changes show on the next run. What might be missing from a archetype generated project and/or from my Eclipse configuration that would cause server-side change to NOT take effect in Foo when they do elsewhere?