spring-mvc - Tomcat 或 JBoss 托管 1 个具有多个网站的 Web 应用程序

标签 spring-mvc tomcat amazon-web-services war

我想要拥有 3 个网站,所有网站都具有不同的公共(public)域名,但它们都共享一个通用的 java 后端 SpringMVC 服务器,并使用通用的静态 Web 资源,如 js 和 css 文件。

与其在 3 个地方维护 UI 代码,我宁愿在 Tomcat8、Jboss 或 Wildfly 云实例(如 OpenShift 或 AWS)上运行 1 个服务器并部署 1 个 WAR,但仍然能够配置我的 dns CNAME 以指向不同的那场 war 的路径。

例如,这里是每个域将映射到它们各自的端点但看不到其他域的位置:

www.mydomainA.com ---> mycloudprovider.ip/sharedcontext/A
www.mydomainB.com ---> mycloudprovider.ip/sharedcontext/B
www.mydomainC.com ---> mycloudprovider.ip/sharedcontext/C

这可能吗?如果是这样,配置步骤是什么?

最佳答案

配置3个独立的项目其实是有好处的。他们都需要有自己的应用程序上下文,但可以共享一个父 POM。这将导致更好的负载平衡性能。此外,由于亚马逊的定价结构,设置 3 个微型实例比一个强大的实例来运行所有 3 场 war 要便宜。注意:您仍然可以让所有 3 个实例指向同一个数据源。

要解决重复的 webapp 代码的问题,您可以使用 maven-war-plugin 创建一个 pom 覆盖.当 Maven 应用覆盖时,它实际上将应用来自您的应用程序的文件与来自覆盖的文件的联合。任何相交的文件都将从应用程序而不是叠加层中使用。

解决java代码重复的问题,可以将常用的代码单独放到一个新的工程中,构建一个jar作为依赖。

关于spring-mvc - Tomcat 或 JBoss 托管 1 个具有多个网站的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862540/

相关文章:

java - 将数据插入数据库时​​无法 Autowiring 字段

java - 无法在 Spring MVC 上创建 bean

java - 通过 axis2 网络服务上传 350MB 的附件时出现内存不足问题

java - 允许 HTTP Post 仅从本地主机访问 Tomcat

java - 跨多个网络应用程序的一个 Hibernate FullTextEntityManager

amazon-web-services - AWS 向目标组注册负载均衡器和 ECS

hibernate - 组织.hibernate.LazyInitializationException : failed to lazily initialize a collection of role (Hibernate + Spring)

java - 在 Spring 中通过 @RequestParam 发送 %

amazon-web-services - Cloudfront 与 cloudformation:AWS::CloudFront::Distribution:您的请求包含一个或多个无效位置代码

php - 在 Amazon API 中仅针对类别使用 ItemSearch