Matt and Mark,
I think I may have isolated the problem here (if not completely solved it). Because the code works as advertised when running jetty:run-war (and tomcat:run), it has to be something to do with the way packaging works for the container that causes the problem. So, after looking at this page:
http://static.appfuse.org/appfuse-tapestry/dependencies.htmlAnd comparing that with my pom, I noticed that I had scope="compile" for tapestry-spring and scope="runtime" for tapestry-flash. Then it dawned on me, I'd changed the scope for tapestry-spring in an earlier attempt to hunt down this problem. What made me twig was the fact that the problem reported by tapestry had *moved* from not knowing about "type='spring'", to not knowing about "persist='flash'".
Changing the scope from "runtime" to "compile" time for both tapestry-spring and tapestry-flash in the web/pom.xml allowed jetty:run to work.
Wow, that took me a lot longer to work through than I had hoped, but at least it's fixed. I can't say I know *why* changing the scope from runtime to compile makes jetty:run work, but I'll leave that for another day.
Regards,
M@