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 :

Message SOAP avec piece jointe


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut Message SOAP avec piece jointe
    Bonjour, je désire envoyer un message SOAP avec une pièce jointe (de type fichier txt) à un web service, la création du message SOAP avec l'attachement se déroule bien et appelle l'opération recupFile du web service, seulement je souhaiterais savoir comment récupérer le message SOAP et la piece jointe à partir de cette opération(modifiable)? Voici le code qui permet la création du message soap:

    try{
    /*creation du datahandler*/
    URL url = new URL("file:///"+filename);
    DataHandler data = new DataHandler(url);
    java.net.URL endpoint = new URL(adress);

    /*initialisation du message*/
    MessageFactory usine= MessageFactory.newInstance();
    SOAPMessage message = usine.createMessage();

    message.getSOAPHeader().detachNode();

    /*initialisation de l'entete du message*/
    SOAPPart part = message.getSOAPPart();

    MimeHeaders headers = message.getMimeHeaders();
    headers.addHeader("Content-Length","length");
    headers.addHeader("SOAPAction", adress);

    /*configuration de l'enveloppe*/
    SOAPEnvelope soapEnveloppe = message.getSOAPPart().getEnvelope();
    soapEnveloppe.setEncodingStyle("http://schemas.xmlsoap.org/soap/encoding/");
    soapEnveloppe.setAttribute("xsd","http://www.w3.org/2001/XMLSchema");
    soapEnveloppe.setAttribute("tns","http://soapinterop.org/");

    /*configuration de l'entete de l'enveloppe*/
    /*SOAPHeader header = soapEnveloppe.getHeader();
    Name name = soapEnveloppe.createName("Transaction","t","http://localhost:9616/MyWebService/services/GestionFichier");
    SOAPHeaderElement element = header.addHeaderElement(name);
    element.setMustUnderstand(true);*/
    /*configuration du corps de l'enveloppe*/
    SOAPBody body = soapEnveloppe.getBody();
    body.setEncodingStyle("http://schemas.xmlsoap.org/soap/encoding/");
    Name bodyname = soapEnveloppe.createName("recupFile","m","http://localhost:9616/MyWebService/services/GestionFichier/recupFichier");
    body.addBodyElement(bodyname);

    /*initialisation de la piece jointe*/
    AttachmentPart attachment = message.createAttachmentPart();
    attachment.setContentType("text/plain");
    attachment.setMimeHeader("Content-Type", "text/plain");
    attachment.setContent(data,"text/plain");
    attachment.setDataHandler(data);
    message.addAttachmentPart(attachment);
    message.saveChanges();

    /*initialisation de la connexion soap*/
    SOAPConnectionFactory factory= SOAPConnectionFactory.newInstance();
    SOAPConnection connection = factory.createConnection();
    connection.call(message,endpoint);
    connection.close();
    return true;

    }catch(Exception ex){
    System.out.println((ex.getMessage()));
    ex.printStackTrace();
    return false;
    }

  2. #2
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut envoi d'une piece jointe par protocole soap
    J'ai réussi à trouver comment récupérer une piece jointe dans le web service en me servant de ce code:
    MessageContext context = MessageContext.getCurrentContext();
    SOAPMessage msg = context.getMessage();
    Iterator attIter = msg.getAttachments();
    if (attIter.hasNext()) {
    while (attIter.hasNext()) {
    AttachmentPart att = (AttachmentPart)attIter.next();
    File file = new File(att.getContentId());
    FileOutputStream fostr = new FileOutputStream(file);
    DataHandler dataHandler = att.getDataHandler();
    if(dataHandler != null){
    dataHandler.writeTo(fostr);
    fostr.flush();
    }
    }
    }

    Maintenant je souhaiterais insérer dans la réponse soap une piece jointe (de type fichier texte), comment puis- je faire cela sachant que ce code ne fonctionne pas?
    MessageContext context = MessageContext.getCurrentContext();
    SOAPMessage message = (SOAPMessage)context.getResponseMessage();
    AttachmentPart attachment = message.createAttachmentPart();
    URL url = new URL(filename);
    DataHandler data = new DataHandler(url);
    attachment.setContentType("text/plain");
    attachment.setMimeHeader("Content-Type", "text/plain");
    attachment.setContent(data,"text/plain");
    message.addAttachmentPart(attachment);

Discussions similaires

  1. [oracle 9] Envoi de mail avec piece jointe
    Par tipote69 dans le forum Oracle
    Réponses: 2
    Dernier message: 01/03/2006, 15h01
  2. probleme d'envoi de mail avec pieces jointes
    Par tmryuga dans le forum ASP
    Réponses: 9
    Dernier message: 23/02/2006, 14h56
  3. Réponses: 5
    Dernier message: 12/12/2005, 08h52
  4. SOAP et pieces jointes
    Par Appletree dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 06/10/2005, 13h09
  5. envoi mail avec piece jointe fichier excel
    Par flogreg dans le forum ASP
    Réponses: 12
    Dernier message: 20/12/2004, 16h02

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