En este apartado, se describen los siguientes problemas relacionados con la compatibilidad:
Esta versión de Service Registry incluye su propio mecanismo de autenticación y administración de usuarios. Está previsto modernizar Registry a un mecanismo basado en SAML en una próxima versión (como se especifica en el estándar ebXML Registry, del que este componente es una implementación).
Los siguientes errores de Service Registry 3.1 están relacionados con la compatibilidad.
Resumen del problema: si utiliza la herramienta de administración de Service Registry 3.1 con una instancia implementada de Service Registry 3.0, los comandos como cp y rm generarán una excepción NullPointerException.
Solución: utilice la herramienta de administración de Service Registry 3.1 sólo con Service Registry 3.1 y la herramienta de administración de Service Registry 3.0 con Service Registry 3.0.
Resumen del problema: si un programa cliente JAXR se ejecuta en un entorno de JDK 1.6 o si Service Registry se implementa en un sistema que esté ejecutando JDK 1.6, se producen errores de tiempo de ejecución cuando el programa realiza una operación de consulta o publicación. El problema subyacente consiste en que JDK 1.6 utiliza la versión 1.3 de SOAP with Attachments API for Java (SAAJ), mientras que Application Server utiliza la versión 1.2.
Solución: existen dos tipos de soluciones necesarias, una para el sistema cliente y otra para el servidor.
Si el cliente está ejecutando JDK 1.6 y el servidor está ejecutando JDK 1.5, siga los pasos incluidos en Para realizar la solución del sistema cliente.
Si el cliente está ejecutando JDK 1.5 y el servidor está ejecutando JDK 1.6, siga los pasos incluidos en Para realizar la solución del sistema del servidor.
Si el cliente y el servidor están ejecutando JDK 1.6, siga los pasos incluidos en ambas soluciones.
Es necesario llevar a cabo la solución del sistema cliente si éste ejecuta JDK 1.6. Esta solución conlleva las siguientes tareas:
Adición de los archivos JAR de SAAJ 1.3 a la ruta de clase si aún no están presentes
Definición de las cuatro propiedades del sistema en el archivo de creación de Ant para el programa cliente
Asegúrese de que la ruta de clase incluya los siguientes archivos JAR:
En SO Solaris:
/usr/share/lib/saaj-api.jar /usr/share/lib/saaj-impl.jar
En los sistemas Linux y HP-UX:
/opt/sun/share/lib/saaj-api.jar /opt/sun/share/lib/saaj-impl.jar
Por ejemplo, si los destinos Ant para el sistema Linux incluyen una configuración como la siguiente, la ruta de clase es correcta:
<path id="classpath"> <fileset dir="/opt/sun/share/lib"> <include name="*.jar"/> </fileset> ... </path>
Agregue las siguientes etiquetas <sysproperty> a los destinos <java> en los archivos build.xml:
<sysproperty key="javax.xml.soap.MessageFactory" value="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"/> <sysproperty key="javax.xml.soap.MetaFactory" value="com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl"/> <sysproperty key="javax.xml.soap.SOAPConnectionFactory" value="com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnectionFactory"/> <sysproperty key="javax.xml.soap.SOAPFactory" value="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl"/>
La solución del sistema del servidor conlleva las siguientes tareas:
Ubicación de los archivos JAR de SAAJ 1.3 en el directorio lib de Application Server
Adición de dos opciones de JVM para definir las propiedades del sistema
Parada y reinicio de Application Server
Acceda al directorio lib de Application Server.
En SO Solaris: cd /opt/SUNWappserver/appserver/lib
En los sistemas Linux y HP-UX: cd /opt/sun/appserver/lib
Realice copias de seguridad de los dos archivos JAR de SAAJ en el directorio lib de Application Server. Por ejemplo:
cp saaj-api.jar saaj-api.jar.v1.2 cp saaj-impl.jar saaj-impl.jar.v1.2 |
Copie los archivos JAR de SAAJ 1.3 en el directorio lib de Application Server.
En SO Solaris:
cp /usr/share/lib/saaj-api.jar . cp /usr/share/lib/saaj-impl.jar . |
En los sistemas Linux y HP-UX:
cp /opt/sun/share/lib/saaj-api.jar . cp /opt/sun/share/lib/saaj-impl.jar . |
Inicie sesión en la consola de administración de Application Server, como se describe en To Use the Application Server Admin Console de Service Registry 3.1 Administration Guide.
Expanda el nodo de configuraciones.
Expanda el nodo del servidor, server-config (Admin Config).
Haga clic en Configuración de JVM.
Haga clic en la ficha Opciones de JVM.
Haga clic en Agregar opción de JVM.
Escriba lo siguiente en el campo de texto:
-Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl |
Haga clic de nuevo en Agregar opción de JVM.
Escriba lo siguiente en el campo de texto:
-Djavax.xml.soap.MetaFactory=com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl |
Haga clic en Guardar.
Siga las instrucciones que aparecen en To Stop and Restart the Application Server Domain for the Registry de Service Registry 3.1 Administration Guide.
Resumen del problema: Si ha instalado y utilizado la versión anterior de Service Registry (de Java ES 2005Q4), y actualiza a la versión Java ES 5 de Application Server pero no actualiza a la versión Java ES 5 de Service Registry, se produce un error de inicio de sesión al intentar utilizar el mismo certificado creado anteriormente con Web Console.
Solución: edite el archivo web.xml y el archivo de directivas de seguridad para Service Registry.
Para detener el dominio de Application Server de Registry y editar el archivo web.xml , siga estos pasos:
Acceda al directorio de instalación de Service Registry:
En SO Solaris: cd /opt/SUNWsoar/install
En los sistemas Linux y HP-UX: cd /opt/sun/SUNWsoar/install
Detenga el dominio de Application Server de Registry:
Ant-base/ant -f build-install.xml appserver.domain.stop
Acceda al directorio RegistryDomain-base /domains/registry/applications/j2ee-modules/soar/WEB-INF/ .
Abra el archivo web.xml en un editor de textos.
En la etiqueta <security-constraint>, inserte lo siguiente detrás de la etiqueta </web-resource-collection>:
<auth-constraint> <role-name>have.client.cert</role-name> </auth-constraint>
Inserte lo siguiente detrás de la etiqueta </security-constraints>:
<error-page> <error-code>400</error-code> <location>/registry/thin/AuthenticateError.jsp</location> </error-page> <security-role> <description>all subjects who have client certificates</description> <role-name>have.client.cert</role-name> </security-role>
Guarde y cierre el archivo web.xml.
Para editar el archivo de directivas de seguridad y reiniciar el dominio, siga estos pasos:
Cambie al directorio siguiente:
En SO Solaris: cd /var/opt/SUNWsoar/domains/registry/config
En los sistemas Linux y HP-UX: cd /var/opt/sun/SUNWsoar/domains/registry/config
Abra el archivo server.policy en un editor de textos.
Agregue las siguientes concesiones a este archivo:
grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/soar/WEB-INF/lib/-"{ permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; }; grant codeBase "file:${com.sun.aas.instanceRoot}/generated/jsp/j2ee-modules/soar/-" { permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; };
Guarde y cierre el archivo server.policy.
Reinicie el dominio de Application Server de Registry:
Ant-base/ant -f build-install.xml appserver.domain.start
Abra la URL http://localhost:6060/soar en el navegador web. Debería poder iniciar una sesión y realizar operaciones de publicación.
Resumen del problema: si ha instalado y utilizado la versión anterior de Service Registry (de Java ES 2005Q4) en un sistema HP-UX, y actualiza a la versión Java ES 5 de Service Registry, la instalación producirá un mensaje de error que indica que el problema se debe a HADB (High Availability Database o Base de datos de alta disponibilidad). El problema consiste en que los paquetes de HADB se instalaron en la que el programa de instalación de Java ES 5 considera como una ubicación no predeterminada.
El problema también ocurre si se desinstala la versión Java ES 2005Q4 de Application Server y, a continuación, se instalan las versiones Java ES 5 de Service Registry y Application Server.
Solución: si ha desinstalado Application Server, debe eliminar los paquetes de sun-hadb antes de volver a instalar.
Si va a realizar una actualización directamente de la versión Java ES 2005Q4 de Service Registry a la versión Java ES 5, los pasos a seguir son más complicados:
Elimine los paquetes de sun-hadb.
Instale las versiones Java ES 5 de Service Registry y Application Server.
Edite el archivo /opt/sun/appserver/config/asenv.conf del modo siguiente:
En el directorio /opt/sun/appserver/lib, cree un subdirectorio con el nombre endorsed.
Copie el archivo /opt/sun/javadb/lib/derby.jar en el directorio /opt/sun/appserver/lib/endorsed.