tomcat - 我们可以在tomcat中部署两个同名的war文件吗?
问题描述
有没有可能我们可以在tomcat中部署两个同名的war文件(同一个项目)。
我有一个应用程序,它的 URLapp/customer/123
向我返回了客户详细信息,现在我想提供app/v1/customer/123
应该给我客户详细信息的版本。这通常是版本维护。还有其他的版本维护方法,在下面的帖子中介绍
维护 api 版本的最佳方法
但我又必须写很多代码。我正在寻找可以提供即时解决方案的东西(稍后我可以遵循最佳实践并进行更改)我在想我是否可以通过更改来部署两个具有相同名称的战争文件,<url-pattern>/v1/*<url-pattern>
以便客户可以通过在 URL 中添加版本(这将防止更改整个 URL)
我也试过了,但这不起作用 如何在tomcat中部署外部webapp?
有什么办法可以做到这一点?
解决方案
1)您可以在不同的上下文路径上部署不同版本的应用程序,如下所示:
apache-tomcat/conf/Catalina/localhost/app#v1.xml:
<Context docBase="c:\path\to\v1\app.war" path="/app/v1"/>
可通过http://localhost:8080/app/v1访问
apache-tomcat/conf/Catalina/localhost/app#v2.xml:
<Context docBase="c:\path\to\v2\app.war" path="/app/v2"/>
可通过http://localhost:8080/app/v2访问
2)您可以在不同的上下文路径上多次部署单个war文件,如下所示:
apache-tomcat/conf/Catalina/localhost/app#v1.xml:
<Context docBase="c:\path\to\app.war" path="/app/v1"/>
可通过http://localhost:8080/app/v1访问
apache-tomcat/conf/Catalina/localhost/app#v2.xml:
<Context docBase="c:\path\to\app.war" path="/app/v2"/>
可通过http://localhost:8080/app/v2访问
有关详细信息,请参阅Apache Tomcat 上下文配置文档。
推荐阅读
- c# - 如何从另一个表单调用方法?
- python - 如何识别字典中的匹配值并仅使用这些键创建一个新字符串?
- ios - WKWebView 显示白屏,与原生<->webview 通信
- node.js - 带有 Nodejs 的 Docker 容器 mongodb
- javascript - 在Javascript中将字符串转换为大整数?
- bash - 使用非系统依赖的 bash shebang(而不是 #!/bin/bash)在任何地方都可以使用?
- python - 使用 Python 为每个单元格从 VTK(vtu) 文件中提取矢量数据,
- android - 如何在 24 小时后重置 SQLite 值?
- javascript - 为什么在 Tone.js 中 triggerRelease 没有 note 参数?
- clips - CLIPS 检查(读取)值的边界