Problème : Si un programme client JAXR est exécuté dans un environnement JDK 1.6 ou si Service Registry est déployé sur un système exécutant JDK 1.6, des erreurs d'exécution surviennent lorsque le programme exécute un requête ou une opération de publication. Le problème sous-jacent est tel que JDK 1.6 utilise la version 1.3 de SOAP with Attachments API for Java (SAAJ) alors que Application Server utilise la version 1.2.
Solution : Il existe deux types de solutions requises : une pour le système client et une pour le serveur.
Si le client exécute JDK 1.6 et que le serveur exécute JDK 1.5, suivez les étapes de la rubrique Pour appliquer la solution du système client.
Si le client exécute JDK 1.5 et que le serveur exécute JDK 1.6, suivez les étapes de la rubrique Pour appliquer la solution du serveur.
Si le client et le serveur exécutent JDK 1.6, suivez les étapes des deux rubriques.
La solution du système client est requise si le système client exécute JDK 1.6. Cette solution implique les tâches suivantes :
Ajout des fichiers JAR SAAJ 1.3 au chemin de classe s'ils n'existent pas
Configuration de quatre propriétés système dans le fichier de version Ant du programme client
Veillez à ce que le chemin de classe comprenne les fichiers JAR suivants :
Sous SE Solaris :
/usr/share/lib/saaj-api.jar /usr/share/lib/saaj-impl.jar
Sous Linux et HP-UX :
/opt/sun/share/lib/saaj-api.jar /opt/sun/share/lib/saaj-impl.jar
Par exemple, le chemin de classe est correct si les cibles Ant d'un système Linux comprennent un paramètre similaire au suivant :
<path id="classpath"> <fileset dir="/opt/sun/share/lib"> <include name="*.jar"/> </fileset> ... </path>
Ajoutez les onglets <sysproperty> suivants aux cibles <java> des fichiers 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 solution du serveur implique les tâches suivantes :
Placement des fichiers JAR SAAJ 1.3 dans le répertoire lib d'Application Server
Ajout de deux options JVM pour définir des propriétés système
Arrêt et redémarrage d'Application Server
Accédez au répertoire lib d'Application Server.
Sous SE Solaris : cd /opt/SUNWappserver/appserver/lib
Sous Linux et HP-UX : cd /opt/sun/appserver/lib
Effectuez des copies de sauvegarde des deux fichiers JAR SAAJ dans le répertoire lib d'Application Server. Exemple :
cp saaj-api.jar saaj-api.jar.v1.2 cp saaj-impl.jar saaj-impl.jar.v1.2 |
Copiez les fichiers JAR SAAJ 1.3 dans le répertoire lib d'Application Server.
Sous SE Solaris :
cp /usr/share/lib/saaj-api.jar . cp /usr/share/lib/saaj-impl.jar . |
Sous Linux et HP-UX :
cp /opt/sun/share/lib/saaj-api.jar . cp /opt/sun/share/lib/saaj-impl.jar . |
Connectez-vous à la console d'administration d'Application Server tel que décrit dans la rubrique To Use the Application Server Admin Console du Service Registry 3.1 Administration Guide.
Développez le nœud Configurations.
Développez le nœud du serveur, server-config (Admin Config).
Cliquez sur Paramètres JVM.
Cliquez sur l'onglet Options JVM.
Cliquez sur Ajouter une option JVM.
Dans la zone de texte, saisissez comme suit :
-Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl |
Cliquez de nouveau sur Ajouter une option JVM.
Dans la zone de texte, saisissez comme suit :
-Djavax.xml.soap.MetaFactory=com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl |
Cliquez sur Enregistrer.
Suivez les instructions de la rubrique To Stop and Restart the Application Server Domain for the Registry du Service Registry 3.1 Administration Guide.