1

我正在开发一个使用 GWT 作为前端的企业应用程序。我有多个模块,并希望将每个单独的模块创建为单独的 war 文件,当部署在同一个 Web 服务器中时,它将像单个 Web 应用程序一样执行,因此用户无需更改 URL 即可访问每个模块。

希望问题很清楚,任何人都可以指导我。

4

4 回答 4

2

我在 Github 上创建了演示项目,其中描述了开发面向插件的系统的工作方法:https ://github.com/domax/gwt-dynamic-plugins

请随时向我询问有关此方法的更多信息-您的兴趣将激励我继续研究它;]。

于 2013-03-16T13:18:28.337 回答
1

最简单的解决方案是将多个模块编译为单独的 gwt 应用程序,然后将它们打包在同一个 war 中。

在您的部署战争中,您最终会得到 multiapp.war

战争的布局将是——

webapps
    -> multiapp
     --> module1gwtapp/
     --> module2gwtapp/
     --> module3gwtapp/
     --> styles/images
     --> styles/css
     --> WEB-INF/web.xml
     --> WEB-INF/lib
     --> WEB-INF/classes

专业人士

  1. 这种方法通过在多个 gwt 应用程序之间共享 WEB-INF/lib jar 来避免重复的依赖 jar。
  2. 这种方法通过在多个 gwt 应用程序之间共享它们来避免重复的 css/图像。
  3. 多个应用程序的会话管理将相同。

缺点

  1. 应用程序之间的导航意味着重新加载应用程序。
  2. 历史管理会有点棘手。
于 2013-03-16T08:03:03.033 回答
0

根据您的应用程序,您有不同的可能性。

如果您的每个应用程序都需要自己的服务器端服务,那么您必须独立部署每个 .war,然后您可以使用像 apache 这样的 Web 服务器作为前端,它使用重写和 http-proxy 规则链接所有应用程序,在在这种情况下,您可以将您的应用程序放在不同的服务器上,甚至可以配置集群和平衡。

如果您的应用程序只是客户端的东西,您可以解压缩所有的战争(使用 jar 或解压缩命令)并将所有静态文件放在任何地方:在 Web 服务器中,甚至在唯一的 .war 中。

您也可以使用 maven 将所有模块加入到最终的 .war 中。基本过程应该是使用 maven-dependency-plugin 的 unpack-dependencies 目标创建一个新模块以加入所有其他模块,然后您可以编译所有 gwt 模块以适当地配置 gwt-maven 插件。

于 2013-03-16T08:27:55.387 回答
0

就我使用 GWT 而言,这是不可能的(我可能错了)。一个 webApp 只能有一个 war 文件。

但是,您可以合并多个模块,以便它可以包含在单个模块中。同一个包甚至可以有多个入口点,但每个应用程序只能有一个战争。

如果您想要多个.war文件,请将您的项目分成多个项目并单独构建它们,并希望它不会中断。

于 2013-03-16T07:15:25.223 回答