当前位置: 首页 > 知识库问答 >
问题:

Undertow和Tomcat的Spring Boot.war上下文路径

邵献
2023-03-14

我有一个Spring Boot应用程序,我将把它作为.war文件部署在现有的Tomcat和Undertow(Wildfly)容器中。如何从应用程序内部配置上下文路径?

我知道我可以直接使用.war名称,但我不想这样做,因为.war名称包含版本信息等。

共有1个答案

酆奇文
2023-03-14

从定义上下文的Tomcat配置文档中:

可以显式定义单个上下文元素:

  • 在应用程序文件内部的/meta-inf/context.xml中。可选地(根据主机的copyXML属性)将其复制到$CATALINA_BASE/CONF/[enginename]/[hostname]/并重命名为
    应用程序的基文件名加上一个“.xml”扩展名。
  • ...

还要注意:

如果要使用与基本文件名无关的上下文路径部署WAR文件或目录,则必须使用以下选项之一来防止双重部署:

  • 禁用autoDeploy和deployOnStartup,并定义server.xml中的所有上下文
  • 在主机的appBase之外找到WAR和/或目录,并使用带有docBase属性的context.xml文件来定义它。

对于undertow,如果它在wildfly中用作web服务器,请尝试使用jboss-web.xml:https://stackoverflow.com/a/28475123/4807777

 类似资料:
  • 我们使用Spring Boot,我创建了一个WAR,而不是一个JAR,以部署在普通的Tomcat服务器上。似乎所有的工作都很好,只是上下文路径设置不正确。我的index.html中的任何相对路径都不工作。 在浏览器中加载应用程序时, 试图从http://localhost:port/app.min.css而不是http://localhost:port/contextpath/app.min.cs

  • 在Spring-Boot应用程序中,可以使用中的属性来选择上下文路径,但是由于我使用的是外部Tomcat8,因此没有使用该属性。 因此,我查看了tomcat-8文档,其中指出: 如果要使用与基文件名无关的上下文路径部署WAR文件或目录,则必须使用以下选项之一来防止双重部署: null null

  • 在 Blade 2.0.9 版本后加入了 RouteContext 这个类,作为路由的上下文操作。其本质是封装了 Request 和 Response,所以使用起来和它们的 API 是相同的,下面列举一下包含的方法列表。 请求相关 #request() #method() #uri() #keepAlive() #session() #isIE() #header(String headerNam

  • 我试图从分解的war目录进行部署,但得到了相同的上下文错误(如果我从eclipse进行部署,或者如果我尝试从manager页面进行部署,则会发生这种情况,错误输出如下): 我的运行配置-war:exploded tomcat:exploded-将分解的war文件的内容复制到\apache7\work\Catalina\localhost 是否缺少apache\tomcat配置设置<非常感谢您的任何

  • 4.7 应用上下文和资源路径 4.7.1 构造应用上下文 (某一特定)应用上下文的构造器通常可以使用字符串或字符串数组所指代的(多个)资源(如 xml 文件)来构造当前上下文。 当指定的位置路径没有带前缀时,那从指定位置路径创建的 Resource 类型(用于后续加载 bean 定义),取决于所使用应用上下文。举个列子,如下所创建的 ClassPathXmlApplicationContext :

  • 我使用Spring启动与网络通量和删除嵌入的tomcat依赖从初学者网络,我想添加基本上下文路径为我的应用程序,有什么办法我可以做??我需要这个,因为我有在kubernetes集群和重定向基于上下文路径的ingrees属性。