Notas de la versión de Sun Java System Application Server Enterprise Edition 8.1 2005Q2

- Previous: Utilidad de actualización

# Contenedor web

En esta sección, se describen problemas conocidos relacionados con el contenedor web, junto con las soluciones pertinentes.

ID del error | Resumen
--- | ---
5004315 | En Windows, si implementa una aplicación usando `--precompilejsp=true`, es posible que los archivos JAR se bloqueen, lo que provocará errores si en el futuro desea volver a implementar o anular la implementación. Si solicita una precompilación de JSP cuando implemente una aplicación en Windows, los siguientes intentos para anular la implementación o para volver a implementarla (o alguna aplicación con el mismo ID de módulo) no funcionarán tal y como se esperaba. El problema es que la precompilación de JSP abre archivos JAR en la aplicación, pero luego no los cierra y Windows impide que se anule la implementación porque no se pueden eliminar los archivos e impide que se puedan volver a implementar, puesto que no se pueden sobrescribir. Tenga en cuenta que la anulación de la implementación es correcta hasta un punto en el que la aplicación se elimina lógicamente de Application Server. Tenga en cuenta también que la utilidad `asadmin` no muestra ningún mensaje de error, a pesar de que los archivos jar bloqueados y el directorio de la aplicación siguen estando en el servidor. El archivo de registro del servidor contiene mensajes en los que se indica que no se han podido eliminar los archivos ni el directorio de la aplicación. Los intentos de volver a implementar la aplicación después de que ésta se haya anulado fallan porque el servidor trata de eliminar los archivos existentes y el directorio, pero estos intentos fallan. Esto puede suceder si intenta implementar una aplicación que utilice el mismo ID de módulo que la aplicación que se implementó originalmente porque el servidor utiliza dicho ID de módulo cuando elige el nombre del directorio para conservar los archivos de la aplicación. Si intenta reimplementar la aplicación sin anular su implementación primero, se producirán fallos por las mismas razones. Diagnóstico Si intenta volver a implementar la aplicación o implementarla después de haberla eliminado, la utilidad asadmin devuelve un error semejante al siguiente.
    An exception occurred while running the command. The exception
    message is: CLI171 Command deploy failed : Deploying application in
    domain failed; Cannot deploy. Module directory is locked and can't
    be deleted.
Solución No se producirá este problema, si especifica `--precompilejsps=false` (la configuración predeterminada) al implementar una aplicación. Tenga en cuenta que el primer uso que haga de la aplicación desencadenará la compilación JSP, por lo que el tiempo de respuesta para la primera solicitud será superior al de las solicitudes posteriores. Debe saber también que si realiza una compilación previa, deberá detener y reiniciar el servidor antes de anular la implementación de la aplicación o de volver a implementarla. Al cerrar, se liberan los archivos JAR bloqueados por lo que la anulación de la implementación o el proceso para volver a implementar se realizarán correctamente.
6172006 | No se puede implementar WAR con un archivo `web.xml` basado en Servlet 2.4 que contenga un elemento `<load-on-startup>` vacío. El elemento opcional load-on-startup servlet en `web.xml` indica que el servlet asociado se debe cargar e iniciar cuando se inicie la aplicación web de la que forma parte. El contenido opcional de este elemento es un entero que indica el orden en el que se debe cargar e iniciar el servlet con respecto a los demás servlets de la aplicación web. Si `<load-on-startup>` está vacío, indica que el orden no es relevante, siempre y cuando el servlet se cargue e inicie durante el inicio de la aplicación web que lo contiene. El esquema de Servlet 2.4 de `web.xml` ya no admite un elemento `<load-on-startup>` vacío. Esto implica que debe especificarse un entero al utilizar un archivo `web.xml` basado en Servlet 2.4. Si se especifica un elemento `<load-on-startup>` vacío, como en `<load-on-startup/>`, el archivo `web.xml` no podrá realizar la validación en el esquema de Servlet 2.4 para `web.xml`, por lo que fallará la implementación de la aplicación web. Problema de compatibilidad con versiones anteriores En el caso de `web.xml` basado en Servlet 2.3, sí se puede dejar vacío <load-on-startup>. Solución Especifique `<load-on-startup>0</load-on-startup>` al utilizar un archivo `web.xml` basado en Servlet 2.4 para indicar que el orden de carga del servlet es irrelevante.
6184122 | No se puede compilar la página JSP en servidores con restricciones de recursos. Se puede acceder a la página JSP, pero se producen fallos al compilar y el registro del servidor contiene el mensaje de error "Unable to execute command", es decir, que no se puede ejecutar el comando con este seguimiento de pila:
    at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.
    exec(Execute.java:655) at org.apache.tools.ant.taskdefs.Execute.
    launch(Execute.java:416)
    at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:427)
    at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.
    executeExternalCompile(DefaultCompilerAdapter.java:448)
    at org.apache.tools.ant.taskdefs.compilers.JavacExternal.execute
    (JavacExternal.java:81)
    at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:842)
    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682)
    at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:396)
- Solución Defina el conmutador de compilación "fork" de JSP en "false". Esta acción puede realizarse de dos formas: Globalmente, al configurar el parámetro fork init de JspServlet en `${S1AS_HOME}/domains/domain1/config/default-web.xml` en false:
      <servlet> <servlet-name>jsp</servlet-name>
      <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
      .... <init-param>
      <param-name>fork</param-name> <param-value>false</param-value>
      </init-param> .... </servlet>
- En cada aplicación web, configurando la propiedad de configuración JSP fork de `sun-web.xml` en false:
      <sun-web-app> <jsp-config> <property name="fork" value="false" />
      </jsp-config> </sun-web-app>
Las dos configuraciones impedirán que ant genere nuevos procesos para la compilación javac.
6188932 | Application Server no admite el complemento `auth-passthrough` de Web Server 6.1. Sun Java System Application Server Edición Enterprise 8.1 2005Q2 Actualización 2 agrega compatibilidad para la función proporcionada por la función del complemento `auth-passthrough` que está disponible con Sun Java System Application Server Edición Enterprise 7.1. Sin embargo, en Application Server Edición Enterprise 8.1 2005Q2 Actualización 2, la función del complemento `auth-passthrough` está configurada de forma diferente. La función del complemento `auth-passthrough` en Application Server Edición Enterprise 7.1 ha resultado útil en situaciones de implementación de dos capas: La instancia de Application Server está protegida por un segundo servidor de seguridad detrás del servidor de seguridad corporativo. No se permiten conexiones de clientes directamente a la instancia de Application Server: En arquitecturas de red de este tipo, un cliente se conecta a un servidor web de principal (front-end) que se haya configurado con la función del complemento `service-passthrough` y reenvía solicitudes HTTP a la instancia de Application Server que actúa de proxy para que las procese. La instancia de Application Server sólo puede recibir solicitudes desde el proxy del servidor web, pero nunca directamente de los hosts clientes. En consecuencia, ninguna aplicación implementada en la instancia de Application Server que actúa de proxy que solicite información del cliente (como pueda ser la dirección IP del cliente) recibirá la IP de host del proxy, puesto que éste es el host que origina la solicitud remitida. En Application Server Edición Enterprise 7.1, la función del complemento `auth-passthrough` se puede configurar en la instancia de Application Server que actúa como proxy para hacer que la información de los clientes remotos esté disponible directamente para todas las aplicaciones implementadas; de esta forma, el funcionamiento es como si la instancia de Application Server que actúa de proxy hubiera recibido la solicitud directamente en lugar de a través del servidor web intermediario que ejecuta el complemento `service-passthrough`. En Application Server Edición Enterprise 8.1 2005Q2 Actualización 2, la función `auth-passthrough` puede activarse definiendo la propiedad `authPassthroughEnabled` del elemento `<http-service>` de `domain.xml` en TRUE de la siguiente forma:
    <property name="authPassthroughEnabled" value="true"/>
| Las mismas consideraciones de seguridad de la función del complemento `auth-passthrough` de Application Server Edición Enterprise 7.1 se aplican también a la propiedad `authPassthroughEnabled` de Application Server Edición Enterprise 8.1 2005Q2 Actualización 2. Como, con `authPassthroughEnabled` , es posible sustituir la información que se podría utilizar para propósitos de autenticación (como la dirección IP desde la que se origina la solicitud o el certificado SSL de cliente), es esencial que sólo los clientes o los servidores de confianza puedan conectarse a la instancia de Application Server Edición Enterprise 8.1 2005Q2 Actualización 2 con el comando `authPassthroughEnabled` definido como TRUE (verdadero). Como medida de precaución, se recomienda que sólo los servidores que estén detrás de un servidor de seguridad corporativo se configuren con `authPassthroughEnabled` establecido en TRUE. Un servidor que esté accesible a través de Internet nunca debe configurarse con `authPassthroughEnabled` definido en TRUE. Tenga en cuenta que en una situación en la que el servidor web proxy se haya configurado con el plugin `service-passthrough` y éste reenvíe solicitudes a una instancia de Application Server 8.1 Update 2 con `authPassthroughEnabled` definida como TRUE, la autenticación SSL de cliente puede habilitarse en el servidor web proxy y deshabilitarse en la instancia de Application Server 8.1 Update 2 que actúe de proxy. En este caso, la instancia de Application Server 8.1 Update 2 seguirá considerando la solicitud como si estuviera autenticada a través de SSL y proporcionará el certificado SSL de cliente a cualquier aplicación implementada que lo solicite.

- Previous: Utilidad de actualización

- © 2010, Oracle Corporation and/or its affiliates