IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Problème Axis2/ADB et tableaux d'objets


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut Problème Axis2/ADB et tableaux d'objets
    Bonjour,

    J'ai un webservice qui doit me retourner un tableau d'objets bien formés (POJOs) mais lorsque je l'appelle en SOAP, j'ai une exception côté client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement col
    Mon objet est le suivant (je vous fais grâce des getters/setters) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public class Gadget implements Serializable {
    	static final long serialVersionUID = -2455121595840754378L;
    	private int id;
    	private int idg;
    	private int ido;
    	private String title;
    	private int col;
    	private int row;
    	private int idu;
     
    	public Gadget()
    	{
    	}
    ...
    Bien sûr, côté WSDL (généré à partir des classes Java avec Java2WSDL fourni par Axis2), j'ai mon objet qui est mappé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://models.services/xsd">
        <xs:complexType name="Gadget">
            <xs:sequence>
                <xs:element minOccurs="0" name="col" type="xs:int"/>
                <xs:element minOccurs="0" name="id" type="xs:int"/>
                <xs:element minOccurs="0" name="idg" type="xs:int"/>
                <xs:element minOccurs="0" name="ido" type="xs:int"/>
                <xs:element minOccurs="0" name="idu" type="xs:int"/>
                <xs:element minOccurs="0" name="row" type="xs:int"/>
                <xs:element minOccurs="0" name="title" nillable="true" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    ...
    Et j'utilise le code suivant pour appeler mon webservice côté client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    			ServicesStub stub = new ServicesStub(null, url);
    			GetGadgetsByUser req1 = new GetGadgetsByUser();
    			req1.setId(user);
    			GetGadgetsByUserResponse res1 = stub.getGadgetsByUser(req1);
     
    			Gadget[] gadgets = res1.get_return();
    Quelqu'un aurait une idée de comment résoudre ce problème ? Merci d'avance.

    Marc

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    Je précise que j'ai testé le webservice avec SoapUI et que la réponse me semble correcte.

    Requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://services/xsd">
       <soapenv:Header/>
       <soapenv:Body>
          <xsd:getGadgetsByUser>
             <!--Optional:-->
             <xsd:id>1</xsd:id>
          </xsd:getGadgetsByUser>
       </soapenv:Body>
    </soapenv:Envelope>
    Réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Body>
          <getGadgetsByUserResponse xmlns="http://services/xsd">
             <return type="services.models.Gadget">
                <col>0</col>
                <id>1</id>
                <idg>2</idg>
                <ido>0</ido>
                <idu>1</idu>
                <row>0</row>
                <title>Username Available</title>
             </return>
             <return type="services.models.Gadget">
                <col>1</col>
                <id>2</id>
                <idg>3</idg>
                <ido>0</ido>
                <idu>1</idu>
                <row>0</row>
                <title>Blacklist Account</title>
             </return>
          </getGadgetsByUserResponse>
       </soapenv:Body>
    </soapenv:Envelope>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    Toujours pas de réponse ? Je vous en prie, c'est très important. Merci d'avance.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    Toujours pas d'idée ?

    Pour information, j'ai essayé côté serveur java d'envoyer un java.util.List à la place d'un tableau, mais dans le WSDL ça donne un "anyType" qui n'est pas lisible côté client, et de plus je perds le mapping de mes POJOs (le typage générique des java.util.List n'est pas pris en compte dans la génération du WSDL par WSDL2Java).

    Je vous en prie, si quelqu'un pouvait m'aider, je désespère.

    Cordialement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 59
    Par défaut
    Bonjour Havernas,

    Une solution ? Dans ce cas postez
    Sinon postez l'ensemble de vos éléments (class et WSDL) pour avoir de l'aide

    Cordialement

Discussions similaires

  1. Problème de tableaux d'objet
    Par Tiberium76 dans le forum Android
    Réponses: 5
    Dernier message: 21/04/2012, 15h39
  2. Problème avec des tableaux d'objets
    Par flash link dans le forum SDL
    Réponses: 3
    Dernier message: 18/03/2009, 17h54
  3. [Collections]Tableaux d'objets uniques.
    Par Invité dans le forum Collection et Stream
    Réponses: 30
    Dernier message: 22/03/2006, 13h20
  4. [Smarty] problème compréhension sur les tableaux
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 09/02/2006, 16h44
  5. delete[] seulement pour des tableaux d'objets?
    Par Crisanar dans le forum C++
    Réponses: 7
    Dernier message: 22/10/2005, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo