En este capítulo se describen los problemas conocidos y las soluciones asociadas para el software de Sun Java System Application Server Platform Edition 8.2. Si en la información no se especifica una plataforma en concreto, significa que el problema se aplica a todas las plataformas. Esta información está organizada en las siguientes secciones:
De forma predeterminada, hay un valor codificado en $INSTALL/lib/package-appclient.xml para la variable AS_ACC_CONFIG de domain1 a la que señala asenv.conf. Si domain1 se elimina y se crea un nuevo dominio, la variable AS_ACC_CONFIG no se actualiza con el nombre del dominio nuevo, lo que provoca que falle la secuencia de comandos package-appclient .
Lleve a cabo una de las siguientes acciones:
Deje intacto domain1 y cree los demás dominios en torno a él.
Elimine domain1 y sustituya el valor codificado de domain1 en $INSTALL/lib/package-appclient.xml por el nuevo nombre de dominio. Deberá llevar a cabo este procedimiento cada vez que cree un dominio nuevo si domain1 no está presente.
No se puede realizar la duplicación de un dominio en la misma instalación de Application Server mediante los comandos backup-domain y restore-domain , ya que el dominio no se puede restaurar con un nombre distinto del original, aunque el comando asadmin restore-domain proporcione una opción para cambiar el nombre del dominio. Parece que el cambio de nombre del dominio del que se ha hecho una copia de seguridad es correcto, pero al intentar iniciar el dominio en cuestión se producen errores porque las entradas de la configuración del dominio no se han cambiado, y startserv y stopserv usan el nombre de dominio original para definir las rutas.
El nombre de dominio utilizado para restore-domain debe ser el mismo que se usó para el comando original backup-domain. Los comandos backup-domain y restore-domain de Application Server 8.2 sólo se pueden utilizar para realizar copias de seguridad y restaurar el mismo dominio en el mismo equipo.
J2SE 1.4.x, 5.0 o superior puede configurarse en Application Server. Una función integral de la plataforma J2SE 5.0 es la posibilidad de ejecutar un agente JMX. Esta opción se activa cuando se configuran explícitamente las propiedades del sistema al iniciar el servidor.
Entre los valores de ejemplo se incluyen:
name="com.sun.management.jmxremote" value="true" name="com.sun.management.jmxremote.port" value="9999" name="com.sun.management.jmxremote.authenticate" value="false" name="com.sun.management.jmxremote.ssl" value="false"
Después de configurar las propiedades de JMX e iniciar el servidor, se inicia un nuevo jmx-connector en Application Server VM. Un efecto secundario no deseable es que las funciones de administración se ven afectadas negativamente, y la CLI y la GUI de administración de Application Server pueden generar resultados inesperados. El problema es que se producen algunos conflictos entre el servidor integrado jmx-connector y el nuevo servidor jmx-connector.
Si utiliza jconsole (o cualquier otro cliente compatible con JMX), puede reutilizar el servidor estándar JMX Connector Server que se ejecuta al iniciar Application Server.
Al iniciar el servidor, se muestra una línea parecida a la que aparece más abajo en el registro del servidor. Puede conectarse a la JMXServiceURL especificada en dicha ubicación y realizar las mismas operaciones de configuración y administración después de que se proporcionen correctamente las credenciales, por ejemplo:
[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1|javax.enterprise. system.tools.admin|_ThreadID=10;|ADM1501: Here is the JMXServiceURL for the JMXConnectorServer: [service:jmx:rmi:///jndi/rmi://hostname:8686/management/ rmi-jmx-connector]. This is where the remote administrative clients should connect using the JSR 160 JMX Connectors.|#]
Para obtener más información, consulte la Guía de administración de Sun Java System Application Server 8.2.
Si el módulo web se especifica como el módulo predeterminado de un servidor virtual e intenta reimplementarlo o anular su implementación, obtendrá el siguiente mensaje de error:
Trying to undeploy application from domain failed; Virtual Servers [server] have <WEB-MODULE-NAME\> as default web module. Please remove the default web module references first. ; requested operation cannot be completed Virtual Servers [server] have <WEB-MODULE-NAME\> as default web module. Please remove the default web module references first.
En este punto, domain.xml se encuentra en estado de error, y es posible la consola de administración no pueda mostrar la tabla que indica las aplicaciones web implementadas. Esta situación se mantendrá aunque se detenga el dominio y se inicie de nuevo.
Cambie el módulo web predeterminado.
En la consola de administración, acceda a la página del servidor virtual y cambie el módulo el módulo web predeterminado dejando el campo vacío o especificando otro módulo web.
En la CLI, especifique domain como destino para anular la implementación del módulo web.
# asadmin undeploy --target domain <WEB-MODULE-NAME\> |
La consola de administración debería funcionar ahora correctamente y el módulo web debería poder implementarse de nuevo, si así lo desea.
Si se implementa una aplicación en PE mediante la API AMX y no se hace referencia a ella, la GUI Application Server presenta errores al mostrar dicha aplicación. Si se utiliza AMX, es necesario administrar de forma explícita las referencias de las aplicaciones. Por ejemplo, al implementar una aplicación, DeployedItemRefConfig debe crearse explícitamente. Para simplificar el proceso de implementación, se presupone que las referencias están presentes en PE, lo que, a su vez, provoca el problema con la GUI de Application Server.
Cree siempre la referencia a un recurso o aplicación después de crearlo.
Los dominios o servidores de Application Server no utilizan el JDK al que señala el atributo java-home del elemento java-config de la configuración asociada.
El JDK utilizado por los procesos de Application Server de todos los dominios en una instalación del servidor específica viene determinado por el archivo appserver-installation-dir /config/asenv.conf. La propiedad AS_JAVA de este archivo determina el JDK que se utilizará y establecerá durante la instalación. Si los procesos de Application Server utilizan un JDK diferente una vez completada la instalación, este valor puede modificarse para que señale a otro JDK. Tenga en cuenta que este cambio afectará a todos los dominios de esta instalación.
Al realizar cambios en el archivo asenv.conf, debe tener cuidado, ya que no se comprueba su validez. Consulte la documentación del producto para conocer los requisitos mínimos de la versión de JDK al modificar el valor de AS_JAVA.
En el código actual de JDK, el selector /dev/poll asigna una matriz de 8192 entradas de pollfd para su uso por parte de éste. Esto supera el límite nofiles ulimit, lo que provoca que falle con el error "argumento no válido". Además, a su vez, esta error provoca que el servicio de socket de App Server que se conecta a MQ durante el inicio falle con la excepción IOException debido a que se ha roto selector.select() .
Aumente el límite de descriptores del archivo pollfd. Puede realizar esta tarea de dos formas:
Ejecute ulimit -n 8193 en el shell como root.
Aumente el límite fijo de número de descriptores de archivo a 8193 o un valor superior:
Compruebe el límite fijo con ulimit -n -H.
Si es inferior a 8193, edite /etc/system agregando el comando set rlim_fd_max=8193.
Reinicie el equipo.
El dominio no se inicia cuando la contraseña maestra del dominio contiene el carácter de porcentaje (%).
La contraseña maestra del dominio no debe contener un carácter de porcentaje (%). Esta limitación es aplicable al crear un nuevo dominio o cambiar la contraseña maestra del dominio existente.
Si se agrega lo siguiente a la configuración del proxy de JVM, el servidor no se iniciará:
<jvm—options>-Dhttp.proxyHost=webcache.east.sun.com</jvm—options> <jvm—options> -Dhttp.proxyPort=8080</jvm—options> <jvm—options>-Dhttp.nonProxyHosts="mssp.ctu.gov|*.ctu.gov|localhost" </jvm—options> |
Si se inserta el carácter *, se produce un error "No se ha encontrado ninguna definición de clase" (Se genera una excepción en el subproceso main java.lang.NoClassDefFoundError: com/sun/enterprise/security/store/IdentityManager ). Si se inserta el carácter |, se agota el tiempo de espera de la secuencia de comandos de inicio, y el servidor no se puede iniciar.
Esta función es vital para admitir las implementaciones de Application Server (y de Portal) que se encuentran detrás de un servidor de seguridad y necesitan acceder tanto a los servidores internos como externos. como, por ejemplo, el buscador de URL de Portal Server Esta configuración es necesaria para permitir que el buscador de URL obtenga el contenido de fuentes externas.
Edite el archivo install-dir/config/asenv.conf cambiando la línea AS_NATIVE_LAUNCHER="true" por AS_NATIVE_LAUNCHER="false" .
Este apartado describe problemas conocidos relacionados con los clientes de la aplicación, junto con las soluciones pertinentes.
Si cuenta con un archivo JAR de nivel superior en el cliente JAR (en este caso, reporter.jar), cuando implemente el cliente JAR, el archivo MANIFEST de dicho JAR sobrescribirá el archivo MANIFEST del cliente JAR.
Ninguna por ahora.
Ya no se admiten las tecnologías de contenido dinámico como, por ejemplo, CGI-bin y SHTML.
En su lugar, utilice las tecnologías de servicios web y JSP.
En esta sección, se describen los problemas conocidos relacionados con el controlador de base de datos, junto con las soluciones pertinentes.
Después de transferir aplicaciones desde otro servidor de aplicaciones, las conexiones físicas no se cierran correctamente una vez agotado el tiempo de espera. Este problema se produce con la versión 8.1 de DB2 del controlador (Tipo II) de las bibliotecas de cliente en el servidor de base de datos DB2 7.1.x .
Establezca SteadyPoolSize y MaxPoolSize en el mismo número y, además, establezca el tiempo de espera de Idle Connection en 0 (cero). De esta forma, se deshabilita el tiempo de espera de las conexiones inactivas y el usuario contará con el conjunto completo de conexiones disponibles.
En esta sección, se describen los problemas relacionados con la herramienta de implementación (Deploytool), junto con las soluciones pertinentes.
sun-application-client.xml
sun-ejb-jar.xml
sun-web.xml
Es posible que un recurso de destino JMS especificado como nombre JNDI en la ficha Destinos de mensajes no pueda guardarse en el descriptor de Sun. Después de especificar el nombre de destino (por ejemplo, PhysicalQueue, un destino físico creado con create-jmsdest) y pulsar Intro, el nombre de destino aparecerá en Nombre para mostrar, y el nombre del cliente o bean aparecerá en la lista de productores. Después de especificar "jms/Queue" en el campo de texto Nombre JNDI específico de Sun y pulsar Intro, la aplicación no aparece como modificada (changed) en la barra de título y el error se escribe en ~/.deploytool/logfile. Al guardar la aplicación y volver a la ficha, el campo Nombre JNDI aparece de nuevo en blanco. Si ve el descriptor de Sun mediante Herramientas\>Visor del descriptor\>Descriptor de Application Server, comprobará que no ha creado el elemento <message-destination\> en <jndi-name\> .
El problema es que, durante una sesión de la herramienta de implementación, la primera vez que se introduce un valor para el nombre JNDI del destino de mensaje, éste aparece de forma correcta en el descriptor, pero org.netbeans.modules.schema2beans.BeanProp.setElement() genera una excepción IllegalArgumentException. Los siguientes cambios o adiciones realizados en el nombre JNDI del destino de mensaje de la misma aplicación u otras no se guardarán en el descriptor de Sun.
Para editar un nombre JNDI existente de un destino de mensaje:
Elimine el nombre JNDI existente. Para ello, deje en blanco el campo de texto Nombre JNDI y pulse Intro.
Escriba el nuevo nombre JNDI y pulse Intro.
Revise el descriptor de Sun haciendo clic en Herramientas\>Visor del descriptor\>Descriptor de Application Server.
Haga clic en Archivo\>Guardar para guardar la aplicación.
Si el nombre JNDI no se guarda en el descriptor de Sun:
Reinicie la herramienta de implementación.
En la ficha Destinos de mensajes, seleccione un destino de mensaje o agregue uno nuevo.
Introduzca el nombre JNDI del destino de mensaje en el campo de texto Nombre JNDI específico de Sun y pulse Intro.
Revise el descriptor de Sun haciendo clic en Herramientas\>Visor del descriptor\>Descriptor de Application Server.
Haga clic en Archivo\>Guardar para guardar la aplicación.
Repita los pasos anteriores cada vez que se necesite introducir un valor en el campo Nombre JNDI específico de Sun de la ficha Destinos de mensajes, a menos que el valor se esté introduciendo por primera vez en este campo durante una sesión de la herramienta de implementación.
Al crear un Enterprise Bean en la herramienta de implementación y acceder a la ficha Transacción o Seguridad del nodo del bean, las etiquetas "Inicio local" e "Inicio remoto" se traducen incorrectamente como "Directorio de instalación local" y "Directorio de instalación remoto".
En esta sección, se describen problemas conocidos relacionados con la documentación, junto con las soluciones pertinentes.
La documentación de AMX (Application Server Management eXtenstions) no especifica algunas funciones de supervisión no disponibles en Application Server Platform Edition 8.2. En concreto, entre los componentes que no pueden supervisarse en Platform Edition, se incluyen:
Contenedor web de producción (PWC, Production Web Container):
Servicio HTTP de PWC
Cola de conexión de PWC
Conjunto de subprocesos de PWC
DNS de PWC
Mantenimiento (KeepAlive) de PWC
Caché de archivos de PWC
Servidor virtual de PWC
Solicitud de PWC
Módulo web
SessionSize
ContainerLatency
SessionPersistTime
CachedSessionsCurrent
PassivatedSessionsCurrent
Almacén de sesión con estado
CheckpointCount
CheckpointSuccessCount
CheckpointErrorCount
CheckpointedBeanSize
CheckpointTime
No es necesaria ninguna. Estas estadísticas no son relevantes para Platform Edition.
La sección Realm Configuration de Sun Java System Application Server Platform Edition 8.2 Developer’s Guide del Capítulo 2, Securing Applications de Sun Java System Application Server Platform Edition 8.2 Developer’s Guide de Sun Java System Application Server Platform Edition 8.2 Developer’s Guide hace referencia de forma incorrecta a la ampliación de com.sun.appserv.AbstractLoginModule; sin embargo, esta clase ahora se denomina com.sun.appserv.AppservLoginModule.
Consulte com.sun.appserv.AppservLoginModule en lugar de com.sun.appserv.AbstractLoginModule.
No debería haber una opción corta para --passwordfile. Actualmente -W --passwordfile aparece documentada en las páginas de comando man. Esto es incorrecto.
No intente utiliza la opción —W con --passwordfile en Application Server 8.2 Platform Edition. Está previsto que la opción corta se incluya en una futura versión de Application Server.
Faltan los métodos "Getter" para las estadísticas NumConnAcquired y NumConnReleased en ConnectorConnectionPoolStats y AltJDBCConnectionPoolStats. Dichos métodos se agregarán en una versión futura con los nombres getNumConnAcquired() y getNumConnReleased().
Si intenta ejecutar los siguientes métodos en EJBCacheStats, se producirá una excepción: getPassivationSuccesses(), getExpiredSessionsRemoved() , getPassivationErrors(), getPassivations() . Este error se solucionará en una futura versión.
AMX MBeans pueden necesitar varios segundos después del inicio para registrarse y quedar disponible para su uso. En una futura versión será posible determinar cuándo están totalmente cargados los AMX MBeans.
La constante XTypes.CONNNECTOR_CONNECTION_POOL_MONITOR aparece escrita de forma incorrecta ("NNN"). Se corregirá en una futura versión.
En esta sección, se describen problemas conocidos relacionados con la instalación y la desinstalación, junto con las soluciones pertinentes.
Se ha informa de forma intermitente la presencia de este error en la plataforma x 86, aunque es posible que afecte también a las plataformas Solaris SPARC y Linux.
El problema es que la primera pantalla del programa de instalación o desinstalación muestra correctamente el texto completo y los botones "Ayuda" y "Cancelar", pero el botón "Siguiente" necesario para desplazarse a la siguiente pantalla no está visible. Aunque no esté visible, su área está activa y si hace clic en ella, accederá con normalidad a la siguiente pantalla. La causa del problema es un error gráfico de la GUI de J2SE intermitente.
Como solución, podría hacer clic en el área del botón Siguiente a la izquierda del botón Ayuda. También puede hacer que aparezca el gráfico del botón en la pantalla cambiando su tamaño ligeramente, o minimizando y restableciendo la ventana del programa de instalación. Después de este proceso, el botón Siguiente desaparecido estará visible.
Se ha observado que este problema se ha producido en varios sistemas Linux. Es más frecuente en Java Desktop System 2, pero también se ha observado en distribuciones RedHat.
Después de hacer clic en el botón Finalizar en la última pantalla, el programa de instalación no consigue iniciar una ventana del explorador que contiene la página con información acerca del producto o la página de registro. El programa de instalación se bloquea completamente y no permite volver a la línea de comandos.
Salga de programa de instalación pulsando Ctrl+C en la ventana de terminal en la que se inició el programa. Después de realizar esta acción, se puede abrir en ocasiones una ventana del explorador en la que se muestra la página "Acerca de" o la de registro, pero si no es así, deberá iniciar el navegador y escribir la siguiente dirección URL para ver la página "Acerca de":
file://install_dir/docs/about.html
Si también seleccionó la opción de instalación para registrar el producto, siga el vínculo para acceder a la página de registro que está disponible en la página "Acerca de" del producto.
El archivo ejecutable setup que inicia el programa de instalación de Linux se bloquea a menudo. En lugar de resolver la ubicación de J2SE e iniciar el asistente de instalación, el empaquetador se bloquea y devuelve los siguientes mensajes:
Chcking available disk space.... Checking Java(TM) 2 Runtime Environment.... Extracting Java(TM) 2 Runtime Environment.... Deleting temporary files.....
Este problema sólo aparece en algunas versiones de Linux y parece depender de la configuración del entorno, sobre todo, de la presencia de la variable JAVA_HOME.
Para solucionar este problema:
Anule la definición de la variable JAVA_HOME ejecutando unset o unsetenv en función del shell.
Ejecute setup con la opción -javahome para especificar la variable JAVA_HOME utilizada por el programa de instalación.
En esta sección, se describen problemas conocidos relacionados con la administración del ciclo de vida, junto con las soluciones pertinentes.
[echo] Doing admin task set [exec] [Attribute(id=redelivery-interval-internal-in-millis) : Redelivery- Interval (7,000) should be greater than or equal to Minimum-delivery- interval-in-millis (9,000)] [exec] CLI137 Command set failed.
minimum-delivery-interval es el intervalo mínimo de duración entre las entregas del mismo temporizador periódico.
redelivery-interval-in-mills es el tiempo que debe esperar el servicio de temporizador para volver a intentar la entrega después de que se haya producido un error en ejbTimeout.
El problema es que la lógica que relaciona la propiedad del intervalo de reentrega es incorrecta e impide usar GUI o CLI para definir valores donde el intervalo de entrega mínimo es superior al intervalo de reentrega.
minimum-delivery-interval-in-millis debe ser igual o mayor que el valor de redelivery-interval-in-millis de la propiedad ejb-timer-service. El problema es que se produce una comprobación de validación errónea en Application Server al verificar que el valor de redelivery-interval-in-millis es superior al valor de minimum-delivery-interval-in-millis.
Use los valores predeterminados para estas propiedades, tal y como se indica a continuación:
minimum-delivery-interval(default)=7000 redelivery-interval-in-millis(default)=5000
Si utiliza valores que no sean los predeterminados, se generará un error.
En esta sección, se describen problemas conocidos relacionados con el registro, junto con las soluciones pertinentes.
Si establece la opción java.security.debug para JVM, la instancia del servidor se bloqueará irreversiblemente al iniciarse; por ejemplo, si establece domain.xml en los siguientes valores, se producirá este problema:
<jvm-options\>-Djava.security.debug=access,failure</jvm-options\>
Ninguna por ahora. Evite configurar este indicador.
En esta sección, se describen problemas conocidos relacionados con el código de ejemplo incluido en el producto Application Server 8.2.
Al ejecutar el verificador en <install_dir>/samples/webservices/jaxrpc/apps/managementws , recibirá los siguientes mensajes de advertencia:
[exec] WARNING: /var/tmp/exploded20051214111425/managementws/ \ managementwsEjb_jar contains library/castor-0.9.3.9-xml.jar in Class-Path manifest attribute, but it is not found in ear file [exec] Dec 14, 2005 11:14:30 AM Archive getBundledArchives [exec] WARNING: /var/tmp/exploded20051214111425/managementws/ \ managementwsEjb_jar contains library/castor-0.9.3.9-xml.jar in Class-Path manifest attribute, but it is not found in ear file |
El archivo jar de Castor se ha actualizado en la versión Application Server 8.2, por lo que todas las referencias al archivo castor-0.9.3.9-xml.jar antiguo deberían cambiarse para que señalen al nuevo archivo castor-0.9.9.1.jar. En concreto, debe cambiar las referencias de los archivos MANIFEST.MF para utilizar castor-0.9.9.1.jar en lugar del archivo castor-0.9.3.9-xml.jar antiguo.
Cambie las siguientes referencias al antiguo archivo jar de Castor para que señalen al nuevo archivo jar de Castor:
Antiguo:
src/conf/MANIFEST.MF:Class-Path: library/castor-0.9.3.9-xml.jar src/conf/MANIFEST.MF:Name: library/castor-0.9.3.9-xml.jar managementws-ejb/src/conf/MANIFEST.MF:Class-Path: \ library/castor-0.9.3.9-xml.jar |
Nuevo:
src/conf/MANIFEST.MF:Class-Path: library/castor-0.9.9.1.jar src/conf/MANIFEST.MF:Name: library/castor-0.9.9.1.jar managementws-ejb/src/conf/MANIFEST.MF:Class-Path: \ library/castor-0.9.9.1.jar |
A continuación, limpie el archivo build.xml para que no se copie el archivo .jar de Castor en install_dir /lib durante la implementación y elimínelo durante la anulación de la implementación. A continuación se muestran las diferencias entre los archivos build.xml antiguo y nuevo.
% cvs diff build.xml Index: build.xml =================================================================== RCS file: /m/jws/samples/samples8x/webservices/jaxrpc/apps/managementws/ \ managementws-standalone-client/ Attic/build.xml,v retrieving revision \ 1.1.2.3 diff -r1.1.2.3 build.xml 80,89d79 < <target name="remove_castor_from_classpath"> < <delete file="${com.sun.aas.installRoot}/lib/castor-0.9.9.1.jar"/> < </target> < <target name="add_castor_to_classpath"> < <delete file="${com.sun.aas.installRoot}/lib/castor-0.9.9.1.jar"/> < <copy file="../lib/castor-0.9.9.1.jar" \ todir="${com.sun.aas.installRoot}/lib" /> < </target> < < <target name="setup" depends="add_castor_to_classpath, restart.server"/> < jbenoit/galapago 196 >pwd /net/galapago.east/files/share/8.2ws/samples/samples8x/webservices/jaxrpc \ /apps/managementws/managementws-standalone-client jbenoit/galapago 197 >cd .. jbenoit/galapago 198 >cvs diff build.xml Index: build.xml =================================================================== RCS file: /m/jws/samples/samples8x/webservices/jaxrpc/apps/managementws/ \ Attic/build.xml v retrieving revision 1.1.2.4 diff -r1.1.2.4 build.xml 28,36d27 < <target name="setup"> < <ant antfile="build.xml" inheritAll="true" dir="${sample.name}$ \ {standalone-client-dir-suffix}" target="setup"/> < </target> < < <target name="unsetup"> < <ant antfile="build.xml" inheritAll="true" dir="${sample.name}$ \ {standalone-client-dir-suffix}" target="remove_castor_from_classpath"/> < </target> < < 53,54c44,45 < <target name="deploy" depends="select_binary_common, deploy_common, setup" /> < <target name="undeploy" depends="init, undeploy_common, unsetup"/> --- > <target name="deploy" depends="select_binary_common, deploy_common" /> > <target name="undeploy" depends="init, undeploy_common"/>
En esta sección, se describen problemas conocidos relacionados con la seguridad, junto con las soluciones pertinentes.
El cliente de aplicación no transfiere el nombre de usuario y la contraseña a otro cliente de servicio web.
Transfiera explícitamente la combinación de nombre de usuario y contraseña, si es necesario, al programa del cliente, de la siguiente forma:
((Stub)yourWSPort)._setProperty(Stub.USERNAME_PROPERTY, "yourUsername"); ((Stub)yourWSPort)._setProperty(Stub.PASSWORD_PROPERTY, "yourPassword");
En esta sección, se describen problemas conocidos relacionados con la utilidad de actualización, junto con las soluciones pertinentes.
Al ejecutar la utilidad de actualización e identificar install_dir como el directorio de instalación de origen, el proceso de actualización actualiza sólo los dominios que se crean en el directorio install_dir /domains. Los dominios creados en otras ubicaciones no se actualizan.
Antes de iniciar el proceso de actualización, copie todos los directorios del dominio desde sus ubicaciones en el directorio install_dir /domains.
Después de actualizar la versión 8.0 de Application Server con varios dominios, es posible que los dominios no puedan iniciarse simultáneamente debido a que tienen configurado el mismo número de puerto para el conector JMX.
Cambie el valor del puerto.
Busque la siguiente entrada en el archivo install dir /domains/domain1/config/domain.xml:
<jmx-connector accept-all="false" address="0.0.0.0" auth-realm-name= "admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false"/\>" -- and in file <as 8.1 install dir\> /domains/domain1/samples/config/domain.xml, notice it used the same port "8686", so it failed to start domain due to port conflict. |
Cambie el valor del puerto 8686 por 8687 y, a continuación, reinicie domain1.
Este problema se ha observado en varios sistemas Linux y es más frecuente en Java Desktop System 2, pero también se ha detectado en distribuciones RedHat.
Después de hacer clic en el botón Herramienta para iniciar la actualización de la pantalla final del programa de instalación, éste no logra iniciarla para completar el proceso y se bloquea de forma indefinida, por lo que no consigue volver a la línea de comandos.
Este problema no se produce si se utiliza el modo de instalación mediante la línea de comandos para realizar la actualización "in situ".
Si ejecutó una instalación "in situ" con el modo GUI y detectó este problema, salga del instalador pulsando Ctrl+C en la ventana de terminal en la que se ejecutó el instalador.
Inicie la herramienta de actualización desde la ventana de terminal usando los siguientes comandos:
install_dir/bin/asupgrade --source install_dir/domains --target install_dir --adminuser adminuser--adminpassword adminpassword --masterpassword changeit |
adminuser y adminpassword deben coincidir con los valores usados para la instalación que esté actualizando.
Cuando la herramienta de actualización termina el proceso, también podrá iniciar el navegador y escribir la siguiente dirección URL para ver la página "Acerca de":
file://install_dir/docs/about.html
Si también seleccionó la opción de instalación para registrar el producto, siga el vínculo para acceder a la página de registro que está disponible en la página "Acerca de" del producto.
Al actualizar la versión multilingüe de Application Server 8.2 a una versión superior utilizando varias configuraciones regionales, es posible que el panel de resultados y el archivo /opt/SUNWappserver/domains/upgrade.log muestren caracteres ilegibles.
Ninguna por ahora. Este problema se solucionará en una próxima versión de Application Server.
En esta sección, se describen problemas conocidos relacionados con el contenedor web, junto con las soluciones pertinentes.
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 application\qs siguen estando en el servidor. El archivo de registro de server\qs contendrá mensajes en los que se describe el fallo para eliminar los archivos y el directorio application\qs.
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 cualquier aplicación que use el mismo Id. de módulo que se utilizó para implementar originalmente la aplicación porque el servidor usa el Id. del módulo para elegir el nombre del directorio en el que se guardarán los archivos de la aplicación.
Los intentos de volver a implementar la aplicación sin anularla primero fallarán por los mismos motivos.
Si intenta volver a implementar la aplicación o implementarla después de haberla eliminado, la utilidad asadmin devuelve un error parecido 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\qt be deleted
Si especifica --precompilejsps=false (la configuración predeterminada) al implementar una aplicación, no se producirá este problema. Tenga en cuenta que cuando use la aplicación por primera vez se activará la compilación JSP, por lo que el tiempo de respuesta a la primera solicitud será más largo que para 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.
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 número entero que indica el orden en el que el servlet se debe cargar e iniciar con respecto a los otros servlets de application\qs. Si <load-on-startup\> está vacío, esto 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 un archivo web.xml basado en Servlet 2.3, sí se puede dejar vacío <load-on-startup\>.
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.
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)
Establezca el conmutador de compilación fork de JSP en false.
Esta acción puede realizarse de dos formas:
Globalmente, al establecer el parámetro fork init de JspServlet en ${S1AS_HOME}/domains/domain1/config/default-web.xml como 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, estableciendo la propiedad de configuración fork de JSP en sun-web.xml como false:
<sun-web-app\> <jsp-config\> <property name="fork" value="false" /\> </jsp-config\> </sun-web-app\>
Las dos configuraciones impedirán que ant genere un nuevo proceso para la compilación de javac.
La configuración predeterminada de Application Server PE no funciona de forma óptima en los equipos con varias CPU. Se realiza una concesión para acelerar el inicio, pero esto puede afectar negativamente en el rendimiento de las aplicaciones web.
Configure Application Server para utilizar la siguiente opción de JVM:
-Dcom.sun.enterprise.server.ss.ASQuickStartup=false
Si se envía un mensaje SOAP codificado de Fast Infoset no compatible a un servicio de JAX-RPC, el servicio presentará errores de forma correcta. Sin embargo, los siguientes mensajes SOAP codificados de Fast Infoset compatibles que se envíen al mismo servicio o a un servicio implementado con el mismo tiempo de ejecución JAX-RPC presentarán errores indebidamente.
Hay varias soluciones posibles:
Deshabilite la compatibilidad de Fast Infoset en los clientes para que sólo se envíen mensajes SOAP codificados con XML.
Reinicie el contenedor que implementa los servicios para que puedan enviarse los mensajes SOAP codificados de Fast Infoset compatibles.