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 :

[Axis2][MTOM] Instantiation d'un include


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 36
    Par défaut [Axis2][MTOM] Instantiation d'un include
    Bonjour,

    Alors voila le problème. j'espère que vous trouverez une solution parce là j'ai plus de cheveux ...

    J'ai crée mon stub à partir de mon wsdl avec wsdl2java, jusque la tout va bien.

    A l'intérieur, j'ai une methode create document qui prend en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <complexType name="CreateDocumentType">
       <sequence>
         <element name="documentTypeID" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
         <element name="contentType" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
         <element name="controlFlag" type="strs:ControlFlagEnumType" minOccurs="1" maxOccurs="1"/>
         <element name="doc" type="strs:Document" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
    le type strsocument reference un type include
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <complexType name="Document">
       <sequence>
         <element ref="xop:Include" minOccurs="1" maxOccurs="1"/>
       </sequence>
         <attribute ref="xmime:contentType" use="optional"/>
      </complexType>
    J'utilise axis 2 et MTOM pour appeler ma méthode create document.
    le truc c'est que je n'arrive pas à instantier mon include avec mon datahandler


    Comme je veux faire un outils qui appelle n'importe quel service web je marche par invocation:

    Ici j'essaye de créer mon include :

    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
    OMFactory fact = OMAbstractFactory.getOMFactory();
    	    	OMElement imageElement = fact.createOMElement("toto", null);
     
    	    	DataHandler dh;
    	    	if (value instanceof byte[]) 
    	    	{
    				byte[] arrayValue = (byte[]) value;
    				dh = new DataHandler(new PNGDataSource(arrayValue));
    			}
    	    	else if (value instanceof Image) 
    	    	{
    	    		 dh = new DataHandler(new PNGDataSource(((Image)value).getContent()));
    	    	}
    	    	else
    	    	{
    	    		 dh = new DataHandler(new PNGDataSource(((FileAttachment)value).getContent()));
    	    	}
     
    	        //create an OMText node with the above DataHandler and set optimized to true
    	        OMText textData = fact.createOMText(dh, false);
    	        textData.setOptimize(true);
     
    	        imageElement.addChild(textData);
    	        try 
    	        {
    				Object inc = cl.newInstance();
    				//Method m = cl.getMethod("addExtraElement", new Class[]{OMElement.class});
    				//m.invoke(inc, new Object[]{imageElement});
    				Method m2 = cl.getMethod("setHref", new Class[]{URI.class});
    				m2.invoke(inc, new Object[]{new URI("cid:toto")});
    				return inc;
    			}
    	        catch (Exception e)
    			{
    				e.printStackTrace();
    			}
    Et voilà le résultat :
    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
     
    POST / HTTP/1.1
    Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_C618F25B274E38B1481188985744320; type="application/xop+xml"; start="<0.urn:uuid:C618F25B274E38B1481188985744321@apache.org>"; start-info="application/soap+xml"; charset=UTF-8; action="http://schemas.streamserve.com/webservice/repositorydocument/1.0/createdocument"
    User-Agent: Axis2
    Host: 127.0.0.1:27170
    Transfer-Encoding: chunked
     
    8bb
    --MIMEBoundaryurn_uuid_C618F25B274E38B1481188985744320
    Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml"
    Content-Transfer-Encoding: binary
    Content-ID: <0.urn:uuid:C618F25B274E38B1481188985744321@apache.org>
     
    <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Header><ns2:messageHeader xmlns:ns2="http://schemas.streamserve.com/messageheader/1.0"><to>http://schemas.streamserve.com/webservice/repositorydocument/strsrepositorydocumentservice/1.0</to><action>deleteDocument</action></ns2:messageHeader></soapenv:Header><soapenv:Body><ns3:createDocument xmlns:ns3="http://schemas.streamserve.com/webservice/repositorydocument/strsrepositorydocumentservice/1.0"><createDocumentReq><documentTypeID>6555D54C89E140EDA551ED003C57905D</documentTypeID><contentType>application/octet-stream</contentType><controlFlag>Normal</controlFlag><doc><Include xmlns="http://www.w3.org/2004/08/xop/include" href="toto"><toto xmlns="">aGVsbG8gd29ybGQhIQ==</toto>
    --MIMEBoundaryurn_uuid_C618F25B274E38B1481188985744320----MIMEBoundaryurn_uuid_C618F25B274E38B1481188985744320
    Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml"
    Content-Transfer-Encoding: binary
    Content-ID: <0.urn:uuid:C618F25B274E38B1481188985744321@apache.org>
     
    <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Header><ns2:messageHeader xmlns:ns2="http://schemas.streamserve.com/messageheader/1.0"><to>http://schemas.streamserve.com/webservice/repositorydocument/strsrepositorydocumentservice/1.0</to><action>deleteDocument</action></ns2:messageHeader></soapenv:Header><soapenv:Body><ns3:createDocument xmlns:ns3="http://schemas.streamserve.com/webservice/repositorydocument/strsrepositorydocumentservice/1.0"><createDocumentReq><documentTypeID>6555D54C89E140EDA551ED003C57905D</documentTypeID><contentType>application/octet-stream</contentType><controlFlag>Normal</controlFlag><doc><Include xmlns="http://www.w3.org/2004/08/xop/include" href="toto"><toto xmlns="">aGVsbG8gd29ybGQhIQ==</toto></Include></doc></createDocumentReq></ns3:createDocument></soapenv:Body></soapenv:Envelope>
    3a
     
    --MIMEBoundaryurn_uuid_C618F25B274E38B1481188985744320--
    0
    alors qu'il me faudrait :

    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
    POST / HTTP/1.1
    Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_C618F25B274E38B1481188984689606; type="application/xop+xml"; start="<0.urn:uuid:C618F25B274E38B1481188984689607@apache.org>"; start-info="application/soap+xml"; charset=UTF-8; action="http://schemas.streamserve.com/webservice/repositorydocument/1.0/createdocument"
    User-Agent: Axis2
    Host: 127.0.0.1:27170
    Transfer-Encoding: chunked
     
    558
    --MIMEBoundaryurn_uuid_C618F25B274E38B1481188984689606
    Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml"
    Content-Transfer-Encoding: binary
    Content-ID: <0.urn:uuid:C618F25B274E38B1481188984689607@apache.org>
     
    <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Header><ns2:messageHeader xmlns:ns2="http://schemas.streamserve.com/messageheader/1.0"><to>http://schemas.streamserve.com/webservice/repositorydocument/strsrepositorydocumentservice/1.0</to><action>deleteDocument</action></ns2:messageHeader></soapenv:Header><soapenv:Body><ns3:createDocument xmlns:ns3="http://schemas.streamserve.com/webservice/repositorydocument/strsrepositorydocumentservice/1.0"><createDocumentReq><documentTypeID>6555D54C89E140EDA551ED003C57905D</documentTypeID><contentType>application/octet-stream</contentType><controlFlag>Normal</controlFlag><doc><Include xmlns="http://www.w3.org/2004/08/xop/include" href="cid:toto"></Include></doc></createDocumentReq></ns3:createDocument></soapenv:Body></soapenv:Envelope>
    --MIMEBoundaryurn_uuid_C618F25B274E38B1481188984689606
    Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml"
    Content-Transfer-Encoding: binary
    Content-ID: <toto>
     
    aGVsbG8gd29ybGQhIQ==
    --MIMEBoundaryurn_uuid_C618F25B274E38B1481188984689606--
    0
    j'espère avoir été assez clair.
    Pour résumer, je ne sais pas comment faire pour mettre mon document dans le include afin d'avoir mon document en piece jointe comme le fait normalement MTOm avec le multipart et non dans mon enveloppement soap comme il le fait en ce moment.

    merci d'avance, je suis la pour plus de renseignement si vous avez besoin, en attendant je vais continuer ma brasse couler dans les profondeurs de soap

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 36
    Par défaut
    Bon j'ai réussi à attacher ma pièce jointe dans mon enveloppe SOAP mais maintenant j'ai une erreur lorsque j'essaye de la récuperer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Caused by: java.lang.NullPointerException
    	at org.apache.axiom.attachments.Attachments.getSOAPPartContentType(Attachments.java:340)
    	at org.apache.axis2.builder.MIMEBuilder.processDocument(MIMEBuilder.java:37)
    	at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:130)
    	at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:77)
    	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:356)
    	at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294)
    	at com.sopragroup.pleiades.application.ui.actions.ServiceWebAction.executeMethod(ServiceWebAction.java:792)
    	... 30 more
    pourtant mon enveloppe SOAP à l'air correct :

    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
    HTTP/1.1 200 OK
    Server: gSOAP/2.7
    Content-Type: multipart/related; boundary="==cbuygaQuA429SJy2e9JctPUyEAmQrEw3y7hi2iRdhLfawKZC5ydJsA+FZVpA=="; type="application/xop+xml"; start="<SOAP-ENV:Envelope>"; start-info="application/soap+xml; charset=utf-8"
    Content-Length: 1342
    Connection: close
     
    --==cbuygaQuA429SJy2e9JctPUyEAmQrEw3y7hi2iRdhLfawKZC5ydJsA+FZVpA==
    Content-Type: application/xop+xml; charset=utf-8; type=application/soap+xml
    Content-Transfer-Encoding: binary
    Content-ID: <SOAP-ENV:Envelope>
     
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:strsmsg="http://schemas.streamserve.com/messageheader/1.0" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:strs="http://schemas.streamserve.com/webservice/repositorydocument/strsrepositorydocumentservice/1.0"><SOAP-ENV:Header><strsmsg:messageHeader><to></to><action></action><timestamp/></strsmsg:messageHeader></SOAP-ENV:Header><SOAP-ENV:Body><strs:GetDocumentsResponse><documents><item xmime:contentType="application/octet-stream"><xop:Include href="cid:id4"/></item></documents></strs:GetDocumentsResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
    --==cbuygaQuA429SJy2e9JctPUyEAmQrEw3y7hi2iRdhLfawKZC5ydJsA+FZVpA==
    Content-Type: application/octet-stream
    Content-Transfer-Encoding: binary
    Content-ID: <id4>
     
    hello world!!
    --==cbuygaQuA429SJy2e9JctPUyEAmQrEw3y7hi2iRdhLfawKZC5ydJsA+FZVpA==--
    j'utilise Axis 2.
    Auriez vous une idée du problème ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 36
    Par défaut
    petite précision:

    j'arrive à récupérer le paquet <item xmime:contentType="application/octet-stream"> mais pas la pièce attachée à mon enveloppe SOAP

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 36
    Par défaut
    En fait je ne sais pas quoi faire car le null pointer exception arrive dans la library axis2 juste après mon appel et avant que je récupère la main.

    Personne a eut ce problème ou une idée sur comment contourner le problème?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 36
    Par défaut
    Et bien après des jours et des jours de recherche j'ai découvert que ma librairie mail.jar datant de 2002 était bugguée

    Donc changement pour le version 2006 et hop tout marche niquel

    Des fois c'est à pleurer ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Par défaut
    Bonjour,
    J'ai le même problème que vous concernant l'include. Je suis bloqué depuis quelques jours.
    Je cherche à transférer un fichier à partir d'un client JAVA vers un webservice GSOAP C++.
    Votre solution m'intéresse. Pouvez-vous me dire comment faire pour que ça marche?
    Avez-vous un exemple de client / serveur à me fournir ?

    Merci de votre aide.

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

Discussions similaires

  1. SOAPMessage récupérer contenu avec la méthode MTOM - Axis2
    Par borozhim dans le forum Services Web
    Réponses: 0
    Dernier message: 19/07/2010, 11h45
  2. Problème d'include sous Dev-c++ 4.9.8.0
    Par Argonz dans le forum Dev-C++
    Réponses: 16
    Dernier message: 20/11/2003, 17h36
  3. include
    Par ronald dans le forum ASP
    Réponses: 11
    Dernier message: 06/11/2003, 14h30
  4. INCLUDE non exécuté
    Par Sadneth dans le forum ASP
    Réponses: 3
    Dernier message: 07/09/2003, 00h44
  5. #include "math.h" et #include <math.h>
    Par pounka dans le forum C
    Réponses: 4
    Dernier message: 01/05/2003, 21h06

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