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 :

[JAXB] Marshal d'un objet pour renvoyer dans message soap


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    kij
    kij est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Par défaut [JAXB] Marshal d'un objet pour renvoyer dans message soap
    Bonjour,

    J'ai un web service qui fonctionne correctement mise à part que j'aimerai que l'un des services qu'il propose retourne un document XML en tant que réponse. Mais je sais pas trop comment m'y prendre puisque je découvre encore les web services et ce qui s'y rattache.

    Pour ceci j'ai donc créer un objet dans ma méthode appellée, puis j'ai fais un marshall comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    JAXBContext jc = JAXBContext.newInstance( "org.epo.docarea.boca.gensrc" );        
     
    ObjectFactory myFactory = new ObjectFactory();
     
    Publications myRootTree = myFactory.createPublications();
    // --- Build the object, etc...
     
    Marshaller u = jc.createMarshaller();
    FileOutputStream myStream = new FileOutputStream("test.xml");
    u.marshal(myRootTree, myStream);
    myStream.close();
    Le souci c'est qu'actuellement, cette opération me créer un fichier test.xml. Ce dernier est correct, mais j'aimerai en avoir une image à renvoyer comme réponse au service.
    Comment faire ? Dois-je déclarer le retour de ma méthode service comme étant de type String puis lire mon fichier ainsi créer afin de récupérer le contenu et l'envoyer ? (ça me semble un peu énorme pour pas grand chose).
    Est-ce qu'il y a un autre type d'objet à passer à la méthode 'marshal' qui permet de récupérer l'arborescence du document XML afin de l'envoyer ?

    Je suis un peu perdu, est ce que quelqun saurait me guider sur la bonne manière pour faire cela ? (déclarer un type Document en retour ?)

    Merci pour ceux qui pourront m'aider

  2. #2
    kij
    kij est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Par défaut
    Ok j'ai trouvé la réponse.

    Pour récupérer le retour du marshalling dans une variable de type String, voici la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Marshaller u = jc.createMarshaller();			
    StringWriter sw = new StringWriter(); 
    u.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
    u.marshal(myRootTree, sw);	        	
    System.out.println("Response : "+sw.toString());
    Inspiré de cette page qui liste plusieurs manière de faire un marshal :
    http://ws.apache.org/jaxme/manual/ch02s02.html

    Sujet résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] objet et texte dans message
    Par mickisa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/02/2011, 16h07
  2. [VBA-Form]Quel objet rajouter pour dessiner dans une userform?
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/09/2008, 10h37
  3. Réponses: 1
    Dernier message: 01/09/2006, 17h27
  4. Réponses: 2
    Dernier message: 30/06/2006, 16h46
  5. procédure stockée pour renvoyer un état dans une application
    Par erickoffi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/10/2005, 19h05

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