如何创建一个GET Web App,但有多个WAR文件

时间:2013-03-16 06:05:35

标签: gwt

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

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

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

在您的部署战中,您最终将使用multiapp.war

战争的布局是 -

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

赞成

  1. 这种方法通过共享来避免重复的依赖jar WEB-INF / lib包含多个gwt应用程序。
  2. 这种方法通过在多个gwt应用程序之间共享来避免重复的css / images。
  3. 多个应用的​​会话管理相同。
  4. 缺点

    1. 应用之间的导航意味着重新加载应用。
    2. 历史管理会有点棘手。

答案 2 :(得分:0)

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

然而,您可以合并模块的数量,以便它可以包含在单个模块中。您甚至可以为同一个包提供多个入口点,但每个应用程序只能有一个war。

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

答案 3 :(得分:0)

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

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

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

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