gpt4 book ai didi

tomcat - Tomcat 上忽略 Archiva 上下文路径

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

关于安装archiva,如下

http://archiva.apache.org/docs/2.2.3/adminguide/webapp.html

<Context path="/archiva"
docBase="${catalina.home}/archiva/apache-archiva-2.2.3.war">

<Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource"
username="archiva"
password="123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/archiva?useSSL=false" />

<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"
mail.smtp.host="localhost"/>
</Context>

war 部署到Tomcat 8.0.26。

如果我将上下文路径从/archiva 更改为/mavenRepos,它将不起作用。

19-Mar-2018 10:49:32.603 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [E:\apache-tomcat-9.0.6\conf\Catalina\localhost\archiva.xml]
19-Mar-2018 10:49:32.638 WARNING [main] org.apache.catalina.startup.HostConfig.deployDescriptor The path attribute with value [/mavenRepos] in deployment descriptor [E:\apache-tomcat-9.0.6\conf\Catalina\localhost\archiva.xml] has been ignored

为什么上下文路径被忽略?

最佳答案

此警告由 https://github.com/apache/tomcat/blob/trunk/java/org/apache/catalina/startup/HostConfig.java#L581 记录这意味着tomcat没有使用Context的path属性,所以你不妨将其删除。

为什么tomcat不使用它?

根据https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Common_Attributes ,路径属性为:

The context path of this web application, which is matched against
the beginning of each request URI to select the appropriate web
application for processing. All of the context paths within a
particular Host must be unique. If you specify a context path
of an empty string (""), you are defining the default web application
for this Host, which will process all requests not assigned to other Contexts.

This attribute must only be used when statically defining a Context
in server.xml. In all other circumstances, the path will be inferred
from the filenames used for either the .xml context file or the docBase.

Even when statically defining a Context in server.xml, this attribute must
not be set unless either the docBase is not located under the Host's appBase
or both deployOnStartup and autoDeploy are false. If this rule is not
followed, double deployment is likely to result.

这意味着您的服务器收到的每个请求都会被检查以查看 URL 是否以 /mavenRepos 开头。如果是,则将其移交给此上下文。

但是,您已在某处声明了此 Context,此时无法与 /mavenRepos 进行匹配,因为 tomcat 已决定在请求到达此处之前将请求移交给哪个 Context。请注意上面的第二段:只有在 server.xml 中静态定义 Context 时才必须使用此属性。

在您定义路径的其他地方,tomcat 在加载文件之前就已经从文件名推断出路径。

关于tomcat - Tomcat 上忽略 Archiva 上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49365917/

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