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 :

Webservice / Serialisation / Type générique / Héritage


Sujet :

Services Web Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 66
    Points : 36
    Points
    36
    Par défaut Webservice / Serialisation / Type générique / Héritage
    Bonjour,

    J'ai un ennui dans le développement d'un service web.

    J'utilise un modèle objet avec héritage et généricité dans deux packages : DAOentities et BOentities.
    Tous les objets BO héritent de BaseBO et encapsule un objet DAO suivant le schéma di dessous :

    Package BOentities

    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
     
     
    public class BaseBO<T> {
     
    	private T _objectDAO;
     
    	public T getObjectDAO() {
    		return _objectDAO;
    	}
     
    	public void setObjectDAO(T _objectDAO) {
    		this._objectDAO = _objectDAO;
    	}
     
    	public BaseBO() {
    	}
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    public class BODeveloppeur extends BaseBO<Devellopeur> implements Serializable {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 5545457539432845163L;
     
    	public BODeveloppeur() {
    	}
    }
    Package DAOentities

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    public class Devellopeur implements java.io.Serializable {
    }
    J'utilise une classe comme web service avec une méthode qui est censée me renvoyer un objet BO si l'on demande son id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    @WebService
    public class ServicePersonnel {
     
    	@WebMethod
    	public BODeveloppeur GetDev(int id) {
     
    		return BODeveloppeurManager.getInstance().recupererUn(id);
    	}
    }

    Je monte sans aucun problème mon webservice qui est accessible via le web service tester.
    Lorque j'invoke la méthode j'ai une exception du type :
    javax.xml.bind.JAXBException: class DAOentities.Devellopeur nor any of its super class is known to this context.]

    Si je change la méthode de mon web service pour ne rappatrier que le nom sous forme de String de mon objet BO, tout fonctionne.
    J'imagine que la sérialization ne marche pas bien pour mon objet BO.

    En regardant le WSDL généré j'ai 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
    15
    16
    
    <xs:complexType name=
    "boDeveloppeur">
     <xs:complexContent>
      <xs:extension base="tns:baseBO">
       <xs:sequence/>
      </xs:extension>
     </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="baseBO">
     <xs:sequence>
      <xs:element minOccurs="0" name="objectDAO" type="xs:anyType"/>
     </xs:sequence>
    </xs:complexType>
    Il me faudrait donc la marche à suivre pour faire comprendre l'héritage et la généricité à mon web service pour qu'il génére le bon WSDL et que mes objets BO soient récupérables.

    Toute aide serait la bienvenue, j'ai cherché à droite et à gauche mais étant novice j'ai énormément de mal.

    Merci.

  2. #2
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut
    Pouquoi ne pas mettre également
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class BaseBO<T> implements Serializable {
    ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 66
    Points : 36
    Points
    36
    Par défaut
    En fait, je suppose que soit je fais l’implémentation de "Serializable" dans la classe de base soit dans les classes qui en héritent.

    J'ai fais le second choix mais je pense que le premier est aussi valable.

  4. #4
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut
    Et en faisant les deux ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 66
    Points : 36
    Points
    36
    Par défaut
    Merci de votre attention.

    Je viens d'ajouter l’implémentation de "Serializable" dans la classe de base.

    Hélas cela n'a pas changé le problème, j'ai la même exception que précédemment.

Discussions similaires

  1. [Security] Poincut type générique et héritage
    Par bilgetz dans le forum Spring
    Réponses: 4
    Dernier message: 23/05/2012, 12h59
  2. type générique avec héritage multiple
    Par apqmwnqmap dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2008, 14h56
  3. Réponses: 12
    Dernier message: 23/09/2006, 12h12
  4. [WebServices][XMLSCHEMA] Type TimesTimp
    Par Sniper37 dans le forum Services Web
    Réponses: 1
    Dernier message: 23/05/2006, 16h08
  5. y a-t-il un support de types génériques pour python ?
    Par silverhawk.os dans le forum Général Python
    Réponses: 15
    Dernier message: 24/03/2006, 18h23

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