外部tomcat中的自定义上下文路径

     2023-02-26     293

关键词:

【中文标题】外部tomcat中的自定义上下文路径【英文标题】:Custom context path in external tomcat 【发布时间】:2017-02-16 12:43:07 【问题描述】:

我制作了一个想在外部 tomcat 8 中运行的 Spring-Boot 应用程序。

在 Spring-Boot 应用程序中,可以使用 application.properties 中的属性 server.context-path 选择上下文路径,但由于我使用的是外部 tomcat 8,因此不使用此属性。

因此,我查看了tomcat-8 documentation,其中指出:

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

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

因为我不想污染server.xml,所以我选择了第二个选项。因此,我将战争定位在/home/myuser/myapp/application-1.0.0.war 中,并在conf/Catalina/localhost 下放置了一个上下文文件名application-1.0.0.xml。该文件仅包含这两行:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myapp" docBase="/home/myuser/myapp"/>

我可以在日志中看到 tomcat8 启动成功,应用程序似乎部署在 tomcat 管理器中但是:

路径是/application-1.0.0,而不是/myapp。 此外,application-1.0.0 目录出现在work 目录中,但保持为空。 日志不显示任何与 spring 相关的日志,就好像应用程序从未初始化过一样。

注意:我知道战争是正确的,因为如果我将它放在 webapp 目录中(尽管使用默认上下文路径),它就会起作用。

注意:如果我将application-1.0.0.xml 重命名为foo.xml,tomcat 管理器会显示应用程序部署在上下文路径/foo 下(但它仍然从未启动)。

有什么想法吗?

【问题讨论】:

【参考方案1】:

找到答案:

关于上下文路径,上下文文件的path属性确实被忽略了:

该属性只能在 server.xml 中静态定义上下文时使用。在所有其他情况下,将根据用于 .xml 上下文文件或 docBase 的文件名推断路径。

关于docBase 属性,我误解了以下句子:

在主机的 appBase 之外找到 WAR 和/或目录,并使用带有 docBase 属性的 context.xml 文件来定义它。

实际上,在docBase 中,我放置了包含战争的目录的路径,而不是战争本身的路径。

【讨论】:

那么正确的配置是什么?并且 - 每次部署新版本时都需要更新文件吗? 我也需要答案。你能发布整个解决方案吗?【参考方案2】:

如果它对某人有帮助,以下(放在 conf\Catalina\localhost\service-discovery.xml 中)在 Tomcat 9 上对我有用

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/service-discovery" docBase="D:/Projects/codebase/apps/service-discovery/target/service-discovery.war"/>

【讨论】:

如何在 Tomcat 6 中定义应用程序的上下文路径?

】如何在Tomcat6中定义应用程序的上下文路径?【英文标题】:HowtodefinecontextpathofapplicationinTomcat6?【发布时间】:2012-04-2001:14:38【问题描述】:应用程序部署在Tomcat6上的上下文路径“/environame/appname”上。<Context...path="/environame/a... 查看详情

GWT 返回从外部 jar 实现接口的自定义对象

】GWT返回从外部jar实现接口的自定义对象【英文标题】:GWTreturningcustomobjectsthatimplementinterfacesfromexternaljars【发布时间】:2013-02-2717:34:14【问题描述】:我正在尝试实现一个应用程序,该应用程序将从服务器读取一些路径并将其... 查看详情

从flex3中的自定义按钮调用放大和缩小上下文菜单

】从flex3中的自定义按钮调用放大和缩小上下文菜单【英文标题】:Callingthezoominandoutofcontextmenufromcustombuttoninflex3【发布时间】:2013-02-1522:08:17【问题描述】:我想在adobeflex应用程序中从自定义按钮调用上下文菜单的放大和缩小功... 查看详情

在外部 tomcat 中定义 Spring Boot 应用程序的上下文路径

】在外部tomcat中定义SpringBoot应用程序的上下文路径【英文标题】:Definingcontextpathforspringbootapplicationinexternaltomcat【发布时间】:2021-06-3013:29:40【问题描述】:我有一个SpringBoot应用程序abc.myapp.war,它部署在外部tomcat服务器上。默... 查看详情

如何在 *ngTemplateOutlet 中使用上下文和带有材料表的 Angular 中的自定义指令

】如何在*ngTemplateOutlet中使用上下文和带有材料表的Angular中的自定义指令【英文标题】:Howtousecontextin*ngTemplateOutletwithcustomDirectiveinAngularwithMaterialTables【发布时间】:2019-11-2500:03:56【问题描述】:使用的框架:Angular8和MaterialDesign... 查看详情

如何在 Wildfly 中定义上下文路径?

】如何在Wildfly中定义上下文路径?【英文标题】:HowtodefineContextPathinWildfly?【发布时间】:2015-04-1219:10:55【问题描述】:我使用以下代码在tomcat中设置上下文路径,我可以通过覆盖tomcat的默认路径直接使用localhost:8080访问我的应... 查看详情

Hadoop Partitioner 中的自定义计数器

...rtitioner(甚至是默认的HashPartitioner)。我可以通过访问“上下文”变量在映射器和缩减器中使用自定义计数器。但是,在Partitioner内部,无法访问“conte 查看详情

要映射到 rails 4 中的自定义路径的资源路由

】要映射到rails4中的自定义路径的资源路由【英文标题】:resourceroutestobemappedtoacustompathinrails4【发布时间】:2015-04-1907:55:19【问题描述】:我有这样的路线:resources:products现在我的所有代码都已准备就绪,但只需要从/products/:acti... 查看详情

springboot 微服务中的自定义 JWT 令牌

...:57:23【问题描述】:我们有一个应用程序在成功验证后从外部系统加载信息(特定于用户),为了避免每次api调用到外部系统的往返,我们计划首先创建一个带有用户特定信息的自定义JWT令牌当用户通过身份验证时,然后使用htt... 查看详情

使用 Branch.io 的自定义 URL 方案中的路径变量?

】使用Branch.io的自定义URL方案中的路径变量?【英文标题】:PathVariableInCustomURLSchemeUsingBranch.io?【发布时间】:2020-08-1203:28:05【问题描述】:当用户尚未安装应用时,我在iOS中进行深度链接时遇到问题。我不能使用通用链接,因... 查看详情

Cocoa 中的自定义 NSPredicate

】Cocoa中的自定义NSPredicate【英文标题】:CustomNSPredicateinCocoa【发布时间】:2011-03-1122:50:07【问题描述】:我有一个NSTableView,其列绑定到NSArrayController的子类。“值”列的每个条目都是文件路径列表(在模型中),特别是应用程... 查看详情

user.config 的自定义路径

...【发布时间】:2011-01-1622:34:50【问题描述】:我使用VS2008中的设置设计器管理我的应用程序设置。"user.config的确切路径文件看起来像这样:"<ProfileDirectory>\\<CompanyName>\\<AppName>_<EvidenceType> 查看详情

Tableview 上下文菜单:从行到预览视图控制器的自定义动画

】Tableview上下文菜单:从行到预览视图控制器的自定义动画【英文标题】:Tableviewcontextmenu:customanimationfromrowtoapreviewviewcontroller【发布时间】:2019-12-2213:23:28【问题描述】:我已经为tableview实现了特定于行的上下文菜单,其中包... 查看详情

Spring Boot:注入自定义上下文路径

】SpringBoot:注入自定义上下文路径【英文标题】:SpringBoot:Injectacustomcontextpath【发布时间】:2015-08-0920:08:48【问题描述】:我正在运行一个带有嵌入式Tomcat的SpringBoot1.2.3应用程序。我想根据URL的第一部分在每个请求上注入一个自... 查看详情

带有回调的自定义插件

...愿意对插件进行必要的更改(我认为这是必需的)。我对上下文菜单选项不太满意。(我也考虑过完整的自定义插件的选项,但是我觉得RemoveR 查看详情

Flutter 中按钮中的自定义图像

...按下自定义图片的按钮。在后续,我是否也可以根据一些外部因素更改图像?例如。如果某个函数A返回true,则显示图 查看详情

.NET 4.0 中的自定义 MembershipProvider

...。我得到了这个网站,我需要使用它自己的表结构连接到外部sql服务器(mssql),不能使用默认的asp.net会员提供程序结构。表格布局真的很简单,userta 查看详情

Laravel Nova 中的自定义 Vue 组件

】LaravelNova中的自定义Vue组件【英文标题】:CustomVueComponentinLaravelNova【发布时间】:2020-08-0817:23:48【问题描述】:我有一个位于Laravel默认路径中的自定义Vue组件:resources/js/components/MyComponent.vue所以,我安装了Laravel-Nova并想在部... 查看详情