WebSphere Enterprise Service Bus, Version 6.2.0 Systèmes d'exploitation: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


Règles en exécution de la conversion de Java en objets SDO

Pour une substitution correcte du code généré ou l'identification des éventuelles exceptions d'exécution liées aux conversions de Java™ en SDO (Service Data Object), il est important de bien comprendre les règles en jeu. La plus grande partie des conversions se font directement, mais il existe des cas complexes où l'environnement d'exécution offre les meilleures possibilités de conversion du code généré.

Types et classes de base

L'environnement d'exécution effectue une conversion directe entre Service Data Objects et types et classes Java de base. Types et classes de base :
  • Char or java.lang.Character
  • Boolean
  • Java.lang.Boolean
  • Byte ou java.lang.Byte
  • Short ou java.lang.Short
  • Int ou java.lang.Integer
  • Long ou java.lang.Long
  • Float ou java.lang.Float
  • Double ou java.lang.Double
  • Java.lang.String
  • Java.math.BigInteger
  • Java.math.BigDecimal
  • Java.util.Calendar
  • Java.util.Date
  • Java.xml.namespace.QName
  • Java.net.URI
  • Byte[]

Classes et tableaux Java définis par l'utilisateur

Lors de la conversion d'une classe ou d'un tableau (array) Java en SDO, l'environnement d'exécution crée un objet de données possédant un URI généré en inversant le nom de package du type Java et ayant un type égal au nom de la classe Java. Par exemple, si la classe Java com.ibm.xsd.Customer est convertie en objet SDO, l'URI est http://xsd.ibm.com et le type est Customer. L'environnement d'exécution inspecte ensuite le contenu des membres de la classe Java et affecte les valeurs aux propriétés du SDO.

Lors de la conversion d'un SDO en un type Java, l'environnement d'exécution génère le nom du package en inversant l'URI et le nom du type est égal au type du SDO. Par exemple, l'objet de données de type Customer et dont l'URI est http://xsd.ibm.com génère une instance du module Java com.ibm.xsd.Customer. L'environnement d'exécution extrait ensuite les valeurs des propriétés du SDO et affecte ces propriétés aux zones de l'instance de la classe Java.

Lorsque la classe Java est une interface définie par l'utilisateur, vous devez substituer le code généré et offrir une classe concrète que l'environnement d'exécution puisse instancier. Si l'environnement d'exécution ne peut créer de classe concrète, une exception se produira.

Java.lang.Object

Si le type Java est java.lang.Object, le type généré est xsd:anyType. Un module peut appeler cette interface avec tout objet SDO. L'environnement d'exception tente d'instancier une classe concrète de la même façon que pour les classes et tableaux (arrays) Java définis par l'utilisateur lorsqu'il ne peut trouver cette classe. Autrement, l'environnement d'exécution passe le SDO à l'interface Java.

Même si la méthode renvoie un objet java.lang.Object, l'environnement d'exécution effectuera la conversion seulement en un SDO, si la méthode renvoie un type concret. L'environnement d'exécution emploie une conversion semblable à celle des classes et tableaux Java définis par l'utilisateur en SDO, tel que décrit dans le paragraphe suivant.

Lors de la conversion d'une classe ou d'un tableau (array) Java en SDO, l'environnement d'exécution crée un objet de données possédant un URI généré en inversant le nom de package du type Java et ayant un type égal au nom de la classe Java. Par exemple, si la classe Java com.ibm.xsd.Customer est convertie en objet SDO, l'URI est http://xsd.ibm.com et le type est Customer. L'environnement d'exécution inspecte ensuite le contenu des membres de la classe Java et affecte les valeurs aux propriétés du SDO.

Dans un cas ou l'autre, si l'environnement d'exécution est incapable d'accomplir la conversion, une exception se produit.

Classes de conteneur Java.util

Lors de la conversion en une classe de conteneur Java concrète telle que Vector, HashMap, HashSet et autres du même genre, l'environnement d'exécution instanciera la classe de conteneur appropriée. L'environnement d'exécution emploie une méthode semblable à celle des classes et tableaux Java définis par l'utilisateur pour renseigner la classe de conteneur. Si l'environnement d'exécution ne peut localiser de classe Java concrète, l'environnement d'exécution injectera la classe de conteneur dans le SDO.

Lors de la conversion de classes de conteneur Java concrètes en SDO, l'environnement d'exécution utilise les schémas générés montrés dans la conversion de "Java en XML."

Interfaces Java.util

Pour certaines interfaces de conteneur du package java.util, l'environnement d'exécution instancie les classes concrètes suivantes :
Tableau 1. Conversion de type WSDL en classe Java
Interface Classes concrètes par défaut
Collection HashSet
Map HashMap
List ArrayList
Set HashSet

concept Rubrique concept

Conditions d'utilisation | Commentaires en retour


Icône d'horodatage Dernière mise à jour: 07 juillet 2010


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/cdev_rulesjavatoxmlruntime.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
Ce centre d'information est mis en service par la technologie Eclipse (http://www.eclipse.org).