java - 在 Web 应用程序中为 Tomcat 上下文定义别名

标签 java tomcat alias context.xml

我已经设置了一个带有两个主机的 Tomcat 8.0:

  <Realm className="org.apache.catalina.realm.LockOutRealm">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

  <Host name="sub1.mydomain.com"  appBase="sub1"
        unpackWARs="true" autoDeploy="true">
  </Host>

  <Host name="sub2.mydomain.com"  appBase="sub2"
        unpackWARs="true" autoDeploy="true">
  </Host>

部署到 sub1 的应用程序有一个具有以下设置的 META-INF/context.xml:

<Context path="/" aliases="/upload=/home/myuser/somepath"></Context>

其中 /upload 在 webapp 中用作保存上传文件的虚拟路径。当应用程序启动时,会显示此警告:

org.apache.catalina.startup.SetContextPropertiesRule.begin [SetContextPropertiesRule]{Context}     
Setting property 'aliases' to '/upload=/home/myuser/somepath' did not find a matching property

当我在应用程序的 /upload 中保存文件时,它只是保存在已部署应用程序内的 upload 目录中(而不是保存在 /home/myuser/somepath).当没有两个 Host 时,此设置过去有效。是错误还是此功能在此配置中不起作用或配置错误?

最佳答案

您将从错误消息和 Tomcat 8 文档中注意到 here , aliases 属性不再存在。

引用The Migration Guide修复它(以及可能的其他问题)。

关于java - 在 Web 应用程序中为 Tomcat 上下文定义别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706823/

相关文章:

java - 渲染我自己的 &lt;script&gt; 标签而不是 JSF 提供的标签

java - C# - 在 java 进程停止后停止 ServiceProcess 包装器

tomcat - 在哪里保存 ActiveMQ 数据?

java - 基于 Maven 的 JAX WS 项目无法在 Eclipse 中运行

python - 始终以 pylab 等于 inline 的方式启动 ipython,但有时将其关闭

java - 我可以使用 Cypher 手动创建的索引和查询节点吗?

java - 在 Java 中创建对象类数组的实例

java - 错误 : Could not find or load main class while running . jar 文件

mysql - 错误代码: 1248. Every derived table must have its own alias 找不到查询的解决方案

module - 子模块上的 Elixir 别名