2

我最近开始了一项新工作,其中我必须修复错误并添加到一套 GWT 应用程序中,这些应用程序多年来有很多贡献者/开发人员:(

App Server: Tomcat 6.0.16
JRE:        Java 6
GWT:        2.5.0
Eclipse:    Juno

这种配置的奇怪之处在于,对于套件中的每个应用程序(大约有 4 个),客户端代码被分离到它自己的 war 文件中,而服务器端代码被分离到几个 war 文件中。问题是各种组件(war 文件)相互依赖并在运行时交互。


要求

基本上,我已经进行了服务器端调试,但我想通过 Eclipse 进行客户端调试;到目前为止,我还不能。


代码布局

当代码完全部署到 Tomcat 时,它看起来像这样:

  • 网络应用
    • 服务器件1
      • 网络信息
        • 班级
          • ...
        • web.xml
        • ...
    • 服务器件2
      • 网络信息
        • 班级
          • ...
        • web.xml
        • ...
    • 客户端App1
      • 网络信息
        • web.xml
      • 索引.html
      • ...
    • 客户端App2
      • 网络信息
        • web.xml
      • 索引.html
      • ...
    • 客户端App3
      • 网络信息
        • web.xml
      • 索引.html
      • ...

过往的经验

在我上一份工作中,我的团队是唯一使用 GWT 和 Maven 进行开发的团队。我们能够设计和实现应用程序,因此我们保持简单。

对于每个应用程序,我们将所有客户端和服务器代码保存在 1 个 WAR 文件中。

我们创建的所有共享组件(窗口管理系统等)都经过 JAR 编译并包含在每个应用程序的 WAR 文件中。

以这种方式进行操作可以实现非常简单的调试设置;在 Tomcat 或 Weblogic 中运行应用程序时,我们能够使用 Eclipse 调试客户端和服务器代码。

4

1 回答 1

1

有一个设置允许您使用外部服务器启动 GWT 开发模式。有关更多详细信息,请参见此处。基本上你做以下事情:

  1. 以调试或运行模式启动您的应用服务器(取决于您是否还想在 Eclipse 中调试后端代码)。
  2. 使用选项启动 GWT 开发模式-noserver(不会启动嵌入式码头容器)。
  3. 转到您的应用服务器提供的 URL(即http://localhost:8080/index.jsp?gwt.codesvr=localhost:9997

如果您使用 maven,您可以使用以下命令运行开发模式:mvn gwt:run -Dgwt.noserver=true

于 2012-11-16T09:12:21.883 回答