将 jspresso helloworld webapp(5 分钟教程)部署到 tomcat6/tomcat7 失败

Deploying jspresso helloworld webapp (5min tutorial) to tomcat6/tomcat7 fails

在 Jspresso 10 分钟教程顺利完成后,我开始尝试 5 分钟教程,但无法正常工作。将 webapp 部署到 tomcat6/tomcat7.

时,我总是遇到以下异常
**** MessageBrokerServlet in application 'Example Application' failed to initialize due to runtime exception:   Exception: flex.messaging.config.ConfigurationException: Please specify a valid 'services.configuration.file' in web.xml.  You specified '/WEB-INF/flex/services-config.xml'.  This is not a valid file system path reachable via the app server and is also not a path to a resource in your J2EE application archive.
at flex.messaging.config.ServletResourceResolver.isAvailable(ServletResourceResolver.java:54)
at flex.messaging.config.FlexConfigurationManager.setupConfigurationPathAndResolver(FlexConfigurationManager.java:202)
at flex.messaging.config.FlexConfigurationManager.getMessagingConfiguration(FlexConfigurationManager.java:78)
at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:109)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

我的设置:Win7,jdk1.7.0_55,Eclipse Luna Service Release 2 (4.4.2),来自 www.jspresso.org/external/updates/e44/[=12 的 Jspresso Developer Studio =]

我是 Jspresso 的新手,不幸的是不太习惯 Maven。对我有什么提示吗?

更新: Vincent 的回答是正确的并解决了部署问题,但现在当我打开 localhost:8080/helloworld-webapp/flex/index.html 和尝试 localhost:8080/[= 时出现空白页面29=].html 我得到了 404。@Vincent:对这个问题有什么想法吗?

更新 2: 我在控制台上做了一个 mvn 包(在 eclipse 中我没有成功),不知何故我不得不用 mvn jetty:run-exploded 启动应用程序一次。之后从 eclipse 内部部署到 tomcat6 成功,现在可以正常工作了。

Jspresso 4.0.7 上存在关于 Eclipse 项目导入的问题,它没有正确映射 webapp 上的 flex 配置目录 WEB-INF/flex。

此错误已在 4.0.8 中修复,但在线 Jspresso 原型目录仍指向 4.0.7。 我已经更新了在线原型目录,它现在指向 4.0.8,所以问题现在应该已经解决了。
重新启动项目生成,你应该没问题。

更新:Eclipse 不会在其构建中触发 flex 或 qooxdoo 编译;所以你必须从命令行(mvn package 从项目根目录)或从 Eclipse(右键单击项目根目录,运行 as > Maven build... > package ).由于 flex / qooxdoo 客户端不依赖于您的应用程序服务器代码,因此您在开发过程中不必再次执行此操作(除非您想自定义客户端 UI 以集成自定义组件,但这是高级的用法)。

完成后,刷新您的 Eclipse 项目并重新启动 Tomcat。

更新 2:您还可以通过以下方式试驾最新的 Jspresso 版本(4.1-SNAPSHOT 包括新主题、mongoDB 支持……)从快照 Maven 存储库生成项目,即:
mvn archetype:generate -DarchetypeCatalog=http://repository.jspresso.org/maven2-snapshots/