gpt4 book ai didi

java - 单个 Web 应用程序或上下文的多个 war 文件

转载 作者:行者123 更新时间:2023-11-28 21:57:06 25 4
gpt4 key购买 nike

我有一个具有以下结构的应用程序

$TOMCAT_HOME/webapps/myapp
|-css
|-myapp.css
|-js
|-myapp.js
|-forum
|-index.jsp
|-list.jsp
|-users.jsp
|-Articles
|-index.jsp
|-ListArticles.jsp
|-Guestbook
|-viewGuestBook.jsp
|-AddnewEntry.jsp
|-WEB-INF
|-classes
com
|-myapp
|-forum
|-DisplayForum.class
|-ListUsers.class
|-article
|-ArticleList.class
|-AddArticle.class
|-guestbk
|-LoadGuestBook.class
|-ProcessGuestBook.class

应用程序作为 war 文件(即 myapp.war)交付并部署到 $TOMCAT_HOME/webapps 文件夹中。如果任何文件发生变化(jsp、css、js 或 java 文件),我必须始终重建整个 war 文件。这意味着我在每个版本上部署每个文件。

我想知道是否有一种方法可以部署应用程序的特定区域。如果可以将应用程序分成多个 war 文件,我特别感兴趣。即 myapp.war、articles.war 和 forum.war。我仍然想通过相同的上下文访问应用程序,即 http://0.0.0.0/myapp即使使用了多个 war 文件。

使用这种方法,我将能够只交付受更改影响的模块。这有可能吗?

我不介意在部署每个 war 文件后重新启动容器。

最佳答案

我不记得你是如何在 Tomcat 中做到这一点的,你可能需要做一些手动配置(在 context.xml 或类似的东西中)但我相当确定你可以部署你的三个应用程序(. war )具有以下上下文路径:

  • myapp.war ->/myapp
  • articles.war ->/myapp/articles
  • forum.war ->/myapp/forum

我在这里找到了一些特定于 Tomcat 的信息:

http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

具体来说:

In individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The name of the file (less the .xml extension) will be used as the context path. Multi-level context paths may be defined using #, e.g. foo#bar.xml for a context path of /foo/bar. The default web application may be defined by using a file called ROOT.xml.

或者,您可能想要执行以下操作:

  • myapp.war ->/(通过调用它 ROOT.war)
  • articles.war ->/articles
  • forum.war ->/forum

话虽如此,但请记住,如果您这样做,您将无法在三个应用程序之间共享状态( session 信息)而不付出一些努力。例如,如果“forum.war”需要身份验证,则身份验证信息将无法用于 myapp.war 或 articles.war。

关于java - 单个 Web 应用程序或上下文的多个 war 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7727100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com