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.