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

Format d'échange (XML, JSON...) Java Discussion :

creer un SOAP message et le relire


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut creer un SOAP message et le relire
    bonjour,

    j'ai un probleme avec l'API de SOAP / XML pour creer et relire ensuite un message.

    je crée un message avec des attachements ( dans des MIME parts )

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
                    final MessageFactory factory = MessageFactory.newInstance();
     
                    SOAPMessage message = factory.createMessage();
     
                    message.getSOAPHeader().setTextContent( "Dummy header" );
                    final SOAPBody body = message.getSOAPBody();
                    DocumentBuilderFactory docFactory =
                        DocumentBuilderFactory.newInstance();
                    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
     
                    Document d = docBuilder.newDocument();
     
                    Element rootEl = d.createElement( "Element01" );
                    Element inCovEl = d.createElement( "Element02" );
                    Element covEl = d.createElement( "Element03" );
                    Element titleEl = d.createElement( "Element04" );
                    titleEl.setTextContent( "titre" );
                    Element refEl = d.createElement( "Element05" );
                    refEl.setAttribute( "attrib01", "attachment01" );
                    refEl.setAttribute( "attrib02", "test" );
     
                    covEl.appendChild( titleEl );
                    covEl.appendChild( refEl );
     
                    inCovEl.appendChild( covEl );
     
                    rootEl.appendChild( inCovEl );
     
                    d.appendChild( rootEl );
     
                    body.addDocument( d );
                    AttachmentPart att = message.createAttachmentPart();
                    att.setContentId( "attachment01" );
                    File fileAtt = new File( "attachment01.txt" );
                    if ( fileAtt.exists() )
                    {
                        fileAtt.delete();
     
                    }
                    fileAtt.createNewFile();
                    FileWriter writer = new FileWriter( fileAtt );
                    writer.write( "This is the attachement file." );
                    writer.flush();
                    InputStream in = new FileInputStream( fileAtt );
                    att.setRawContent( in, "text" );
     
                    message.addAttachmentPart( att );
     
                    message.writeTo( out );
    je precise que message.countAttachment() a ce niveau retourne 1.

    voici le resultat dans out ( qui me semble personnellement bien mais j'y connais rien a SOAP et MIME lol )

    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
     
    ------=_Part_0_18303751.1192033037825
    Content-Type: text/xml; charset=utf-8
     
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
        <SOAP-ENV:Header>Dummy Header</SOAP-ENV:Header>
            <SOAP-ENV:Body>
                <Element01>
                    <Element02>
                        <Element03>
                            <Element04>titre</Element04>
                            <Element05 attrib01="attachment01" attrib02="test"/>
                        </Element03>
                    </Element02>
                </Element01>
        </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    ------=_Part_0_18303751.1192033037825
    Content-Type: text
    Content-ID: attachment01
     
    This is the attachement file.
    ------=_Part_0_18303751.1192033037825--
    maintenant j'essaye de relire ce message comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                final MessageFactory factory = MessageFactory.newInstance();
     
                final SOAPMessage message =
                    factory.createMessage( null, request.getInputStream() );
     
                int count = message.countAttachment()
    et a ma grande surprise count == 0.

    quelqu'un peut me dire ce qui cloche parceque la je vois vraiment pas.

    Merci
    XXiemeciel

  2. #2
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    resolu , solution en anglais sur forum des createur du package javax.xml.soap.

    http://forums.java.net/jive/thread.j...31761&tstart=0

    surtout ne pas oublier le soapMessage.saveChanges() qui est tres important, il rajoute des headers qui vont manquer si vous ne le faites pas. ca m'A pris du temps a realiser ca.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/09/2010, 17h55
  2. [SOAP] Message <SOAP-ENV> devient <env>
    Par kmaya dans le forum Services Web
    Réponses: 1
    Dernier message: 13/05/2008, 10h20
  3. [Web Service][SOAP] Message d'erreur avec NuSOAP
    Par batama dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 08/04/2008, 11h59
  4. message SOAP valide
    Par ep31 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 08/11/2005, 10h14
  5. [castor][SOAP] Probleme avec la validation du message SOAP
    Par VinceFromBcn dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/09/2005, 14h12

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