Notes de version de Service Registry 3.1

6463868 : Un programme client ou un serveur utilisant JDK 1.6 entraîne des erreurs

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.

ProcedurePour appliquer la solution du système client

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 :

  1. 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>
  2. 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"/>

ProcedurePour appliquer la solution du serveur

La solution du serveur implique les tâches suivantes :

  1. 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

  2. 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
    
  3. 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 .
    
  4. 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.

  5. Développez le nœud Configurations.

  6. Développez le nœud du serveur, server-config (Admin Config).

  7. Cliquez sur Paramètres JVM.

  8. Cliquez sur l'onglet Options JVM.

  9. Cliquez sur Ajouter une option JVM.

  10. Dans la zone de texte, saisissez comme suit :


    -Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl
    
  11. Cliquez de nouveau sur Ajouter une option JVM.

  12. Dans la zone de texte, saisissez comme suit :


    -Djavax.xml.soap.MetaFactory=com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl
    
  13. Cliquez sur Enregistrer.

  14. Suivez les instructions de la rubrique To Stop and Restart the Application Server Domain for the Registry du Service Registry 3.1 Administration Guide.