Configuración del contenedor Web para el acceso a archivos estáticos JavaServer Pages

El contenedor web busca archivos estáticos y archivos JavaServer Pages (JSP) en cuatro ubicaciones diferentes, dependiendo de la configuración de la aplicación. Esta búsqueda es relevante para encontrar el recurso adecuado para atender a una solicitud de entrada y para los resultados devueltos por las siguientes API:
URL ServletContext.getResource(String path)
Set ServletContext.getResourcePaths(String path) 
Atención: Sólo se realizan búsquedas en los archivos estáticos cuando la propiedad fileServing está habilitada y la aplicación no incluye una correlación de servlets /*. Asimismo, los archivos JSP incluyen archivos con las siguientes extensiones, además de otros patrones que están definidos en el archivo web.xml
  • .jsp
  • .jspx
  • .jsw
  • .jsv
Las cuatro ubicaciones, por orden de prioridad, son las siguientes:
Directorio WAR de la aplicación
El contenedor web busca primero un recurso solicitado en el directorio WAR de la aplicación. No obstante, no puede dar servicio a recursos en los directorios WEB-INF o META-INF para las solicitudes de entrada, aunque se pueda acceder a ellos utilizando los métodos getResource() y getResourcePaths().
Raíces de documentos previos al fragmento
El contenedor web busca en segundo lugar en las raíces de documentos previos al fragmento definidas por la aplicación. Defina una raíz de documentos previos al fragmento en el archivo ibm-web-ext.xmi, que se encuentra en el directorio WEB-INF de la aplicación. Defina una raíz de documentos previos al fragmento para los archivos estáticos o los archivos JSP de la siguiente manera:
Archivos estáticos:
<fileServingAttributes xmi:id="<nombre proporcionado por usuario>"
 name="preFragmentExtendedDocumentRoot"
 value="<valor-suministrado-por-usuario>"/>
Archivos JSP:
<jspAttributes xmi:id="<nombre proporcionado por usuario>" name="preFragmentExtendedDocumentRoot"
 value=<valor proporcionado por usuario>"/>
El <nombre proporcionado por usuario> puede ser una lista de directorios y/o una lista de jars. Por ejemplo:
<fileServingAttributes name="extendedDocumentRoot"
      value="C:\EDR_directory,C:\my\path\to\jarEDR.jar"/>
Si el <nombre proporcionado por usuario> contiene sólo una lista de un directorio y dicho directorio contiene archivos jar, no busca dentro de estos archivos jar. Busca archivos estáticos y archivos JSP únicamente en ese directorio, pero fuera de los archivos jar. Si los archivos estáticos o JSP están en un jar, los archivos estáticos o jsp no pueden estar dentro de la carpeta META-INF del archivo jar ya que se trata de una carpeta restringida, y el <nombre proporcionado por el usuario> debe contener una vía de acceso completa al archivo jar.
Atención: Raíces de documentos previos al fragmento es una nueva función en WebSphere Application Server Versión 9.0.
Directorios META-INF/resources de fragmentos en el directorio WEB-INF/Lib del archivo WAR de la aplicación
Después de realizar búsquedas en las raíces de documentos previos al fragmento, el contenedor web busca en los fragmentos web. Un fragmento web comprende un archivo JAR de un directorio WEB-INF/lib de la aplicación. El JAR puede incluir recursos estáticos de un directorio META-INF/resources que se definen dentro del archivo JAR. Para evitar que el contenedor web busque en directorios META-INF/resources, establezca la propiedad personalizada com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing del contenedor web en true. El valor predeterminado para la propiedad personalizada es false.
com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing = true
Atención: Los directorios META-INF/resources de fragmentos en el directorio WEB-INF/Lib del archivo WAR de la aplicación constituyen una nueva función en WebSphere Application Server Versión 9.0.
Raíces de documento ampliado
Por último, el contenedor web busca en cualquier aplicación definida como raíz de documento ampliado. Las raíces de documento ampliado estaban disponibles en releases anteriores y se definen en el archivo ibm-web-ext.xmi, que se encuentra en el directorio WEB-INF de la aplicación. Defina la raíz de documento ampliado para archivos estáticos o archivos JSP del siguiente modo:
Archivos estáticos:
<fileServingAttributes xmi:id="<user provided name>" name="extendedDocumentRoot"
 value="<valor-suministrado-por-usuario>"/>
Archivos JSP:
<jspAttributes xmi:id="<nombre proporcionado por usuario>" name="extendedDocumentRoot"
 value="<valor-suministrado-por-usuario>"/>
com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing = true
El <nombre proporcionado por usuario> puede ser una lista de directorios y/o una lista de jars. Por ejemplo:
<fileServingAttributes name="extendedDocumentRoot"
      value="C:\EDR_directory,C:\my\path\to\jarEDR.jar"/>
Si el <nombre proporcionado por usuario> contiene sólo una lista de un directorio y dicho directorio contiene archivos jar, no busca dentro de estos archivos jar. Busca archivos estáticos y archivos JSP únicamente en ese directorio, pero fuera de los archivos jar. Si los archivos estáticos o JSP están en un jar, los archivos estáticos o jsp no pueden estar dentro de la carpeta META-INF del archivo jar ya que se trata de una carpeta restringida, y el <nombre proporcionado por el usuario> debe contener una vía de acceso completa al archivo jar.
Atención: Puede establecer la propiedad personalizada com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot en true para habilitar el servicio de páginas de bienvenida estáticas desde una raíz de documento ampliado de archivo estático. El valor predeterminado de la propiedad personalizada es false.
com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot = true
Si la propiedad com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot se establece en true, el contenedor web buscará en una raíz de documento ampliado de archivo estático un archivo de bienvenida estático para dar servicio a una solicitud formada por un URL parcial válido. Por ejemplo, si una solicitud especifica sólo el contexto de aplicación y se especifica un archivo de bienvenida como index.html, la propiedad debe establecerse si se index.html va a servirse desde un documento ampliado de archivo estático.
com.ibm.ws.webcontainer.enablepartialurltoextendeddocumentroot = true
El valor predeterminado es false.

Si esta propiedad se establece en true, el contenedor web incluye el contenido de una raíz de documento ampliado de archivo estático al determinar si una solicitud de entrada es para un URL parcial válido. Por ejemplo, si una solicitud especifica un URL que termina en /<application context>/<text> y <text> no se correlaciona con un archivo estático o un servlet, el contenedor web sólo lo considera un URL parcial válido si <text> es un directorio válido de la aplicación. Como resultado, si el directorio <text> sólo existe en una raíz de documento ampliado de archivo estático, debe establecerse esta propiedad para que el URI se considere un URI parcial válido.

Importante: Estas propiedades no son necesarias para las raíces de documentos previos al fragmento de archivos estáticos. Asimismo, cuando se determina un URL válido parcial, el contenedor web no tiene en cuenta las raíces de documentos ampliados y previos al fragmento JSP.

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rweb_jsp_staticfile
File name: rweb_jsp_staticfile.html