我有以下default-ssl.conf

ProxyPass / comunes / http://mapapre.mapa.es/comunes/

在DES环境中。

现在,我想在本地的Apache tomcat中创建它。

我修改了文件server.xml。

我加了

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

        <Context docBase="/comunes/" path="http://mapapre.mapa.es/comunes/" />

      </Host>


统计服务器时,出现错误

Caused by: java.lang.IllegalArgumentException: The main resource set specified [D:\apache-tomcat-9.0.27\webapps\comunes] is not valid
        at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:752)
        at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:709)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)


如何在本地apache中创建此链接?

最佳答案

如果阅读Context documentation,将会发现您对使用的pathdocBase属性有基本的误解。


  docBase
  
  为此的文档库(也称为上下文根)目录
  Web应用程序,或Web应用程序存档文件的路径名
  (如果直接从WAR执行此Web应用程序
  文件)。您可以为此目录或WAR指定绝对路径名
  文件,或相对于appBase目录的路径名
  拥有主机。
  
  除非Context元素为,否则不得设置此字段的值。
  在server.xml中定义或docBase不在主机的
  appBase。
  
  如果将符号链接用于docBase,则更改为符号链接
  链接仅在Tomcat重新启动或通过取消部署后才有效
  并重新部署上下文。上下文重载是不够的。





  路径
  
  此Web应用程序的上下文路径,与
  每个请求URI的开头以选择适当的网站
  申请处理。内的所有上下文路径
  特定主机必须是唯一的。如果您指定
  空字符串(“”),您正在定义默认的Web应用程序用于
  该主机,它将处理所有未分配给其他主机的请求
  上下文。
  
  仅在以下情况下静态定义Context时才必须使用此属性:
  server.xml。在所有其他情况下,将从
  用于.xml上下文文件或docBase的文件名。
  
  即使在server.xml中静态定义Context时,此属性
  除非docBase不在
  主机的appBase或deployOnStartup和autoDeploy均为false。如果
  不遵守此规则,可能会导致双重部署。


除此之外,您可能只需要将Web应用程序部署在名称为webapps/的tomcat的comunes.war目录中(或在目录webapps/comunes中),而无需在server.xml中进行任何静态配置。

10-04 11:54
查看更多