关于安装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>
Run Code Online (Sandbox Code Playgroud)
战争部署到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
Run Code Online (Sandbox Code Playgroud)
为什么上下文路径被忽略?
此警告由https://github.com/apache/tomcat/blob/trunk/java/org/apache/catalina/startup/HostConfig.java#L581记录,这意味着 tomcat 没有使用上下文,所以你最好删除它。
为什么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.
Run Code Online (Sandbox Code Playgroud)
这意味着您的服务器收到的每个请求都会被检查以查看 URL 是否以/mavenRepos. 如果是,则将其移交给此上下文。
然而,您已经在某个地方声明了这个 Context,现在无法与 进行匹配/mavenRepos,因为 tomcat 已经决定了在请求到达这里之前将请求移交给哪个 Context。注意上面第二段:This attribute must only be used when statically defining a Context in server.xml.
在您定义路径的其他位置,tomcat 在加载文件之前就已经从文件名推断出路径。
| 归档时间: |
|
| 查看次数: |
10524 次 |
| 最近记录: |