users resource define context resources tomcat8 contextpath

resources - define - tomcat resource



symlinking tomcat 8 recursos del directorio (2)

Parece que necesita una propiedad separada "webAppMount".

<?xml version="1.0" encoding="UTF-8"?> <Context path="/"> <Resources> <PreResources className="org.apache.catalina.webresources.DirResourceSet" base="/FilePath/.../Resources" webAppMount="/resources" internalPath="/"/> </Resources> </Context>

Esto funcionó para mí. Está en META-INF / context.xml de mi aplicación web

Me gustaría vincular simbólicamente directorios JSP bajo Tomcat 8.
Funcionó tan bien en Tomcat 7 de esta manera:

<Context allowLinking="true">


pero parece que el Tomcat 8 eliminó esta característica, y comenzó a usar los recursos

( http://tomcat.apache.org/migration-8.html#Web_application_resources ).

Mi uso de ejemplo:

ROOT / jspdirectory -> linksto -> / var / tmp / realplaceofjspfiles /

Una mala configuración:

ROOT / META-INF / context.xml:

<Context> <Resources allowLinking="true"> <PreResources className="org.apache.catalina.webresources.DirResourceSet" base="/var/tmp/realplaceofjspfiles" internalPath="jspdirectory"/> </Resources> </Context>

Se me cayó esta excepción:

07-Mar-2014 04:09:12.113 WARNING [localhost-startStop-1] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Context/Resources/PreResources} Setting property ''internalPath'' to ''jspdirectory'' did not find a matching property. 07-Mar-2014 04:09:12.114 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1780) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:744) Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@4756d5a0] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4841) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4966) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 10 more Caused by: java.lang.NullPointerException at java.lang.String.startsWith(String.java:1392) at java.lang.String.startsWith(String.java:1421) at org.apache.catalina.webresources.DirResourceSet.list(DirResourceSet.java:115) at org.apache.catalina.webresources.StandardRoot.list(StandardRoot.java:129) at org.apache.catalina.webresources.StandardRoot.listResources(StandardRoot.java:313) at org.apache.catalina.webresources.StandardRoot.processWebInfLib(StandardRoot.java:523) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:643) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 13 more 07-Mar-2014 04:09:12.115 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory /PATH/apache-tomcat-8.0.3/webapps/ROOT java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1780) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:744)



Vi el "path interno" aquí:
http://tomcat.apache.org/tomcat-8.0-doc/config/resources.html


Para permitir que Tomcat acceda a enlaces simbólicos haga lo siguiente:

$CATALINA_HOME/conf/context.xml

Tomcat 7 :

<Context allowLinking="true"> ...

Tomcat 8 :

<Context> <Resources allowLinking="true" /> ...

NO HAGA ESTO EN WINDOWS (o en cualquier otro sistema de archivos que no distinga entre mayúsculas y minúsculas), ya que desactivará las comprobaciones de sensibilidad de mayúsculas y minúsculas, permitiendo la divulgación del código fuente JSP, entre otros problemas de seguridad.

http://tomcat.apache.org/tomcat-8.0-doc/config/resources.html