0

我有一个我一直在研究的概念证明 GWT 2.4 / Spring 3.1 / Maven 3 / Eclipse Indigo 项目。我能够使用嵌入式 Jetty 服务器在开发模式下运行应用程序。我能够创建一个战争(mvn 包在 的帮助下gwt-maven-plugin)并在已安装的 Tomcat 服务器上运行该应用程序。但是当我尝试时Run as > Run on Server,它不会使用/复制生成/编译的 JavaScript。当我转到wtpwebapps目录时,除了生成/编译的 JavaScript 之外,一切都在那里。生成/编译的 JavaScript 似乎位于 maven 目标目录中的正确位置,但是将应用程序代码复制到 wtpwebapps 目录的 eclipse 进程没有拾取它。

我不确定我是否需要提供更多信息来解决此问题,但感谢您提供任何帮助。

4

2 回答 2

1

您可以使用com.google.gwt.core.ext.ServletContainerLauncher嵌入式 Tomcat API 自定义,或者更简单地在 Tomcat 中运行您的服务器代码(使用 WTP 或 tomcat7-maven-plugin),然后在-noserver模式下运行 DevMode。

请参阅https://developers.google.com/eclipse/docs/faq#gwt_with_mavenhttps://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#How_do_I_use_my_own_server_in_development_mode_instead_of_GWT

我在https://github.com/tbroyer/gwt-maven-archetypes
中使用第二种方法 原型现在使用 Jetty,但我在基于原型的项目中成功使用了 tomcat7-maven-plugin(有太多技巧阻止我将其设置为原型中的默认值;仅由于项目的多模块性质才需要这些技巧;但 Jetty 也有技巧)。

于 2012-06-29T22:26:27.357 回答
0

我在我的 eclipse maven 项目中遇到了与 GWT-dev 2.8.0-beta1 和 jetty 9 类似的问题。由于 GWT-dev jar 直接在其 jar 中包含 Jetty 和其他代码(这很糟糕),因此它与我在项目中导入的 jetty 冲突。解决方法是创建一个单独的模块,仅用于运行超级开发模式,导入 GWT-dev 和我的项目代码,但不包括码头罐子。然后我通过下面的 main 运行超级开发模式。这样,超级开发模式就可以在没有看到我的码头库的情况下运行。

import com.google.gwt.dev.codeserver.CodeServer;

public class SuperDevModeMain {

  public static void main(String[] pArgs) throws Exception {
    System.out.println("Starting management-station-web-sdm!");
    String[] options = "-port 9876 com.something.ms.web.MsWeb".split(" ");
    CodeServer.main(options);
  }
}
于 2016-07-19T15:43:52.460 回答