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 :

AXIS : réduire les flux XML de communication


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut AXIS : réduire les flux XML de communication
    Bonjour à tous,

    Voilà j'utilise AXIS depuis peu. J'ai créé un webservice qui a pour vocation d'exposer des données provenant d'une base de données oracle.

    Par exemple, une des méthodes que l'on peut invoquer sur mon webservice est :

    WSResultSet getCommunes(String codeCentre);

    ou WSResultSet est une classe contenant un tableau de tableau contenant les résultats, un tableau contenant le nom des colonnes et le type de leur données.

    J'arrive à un moment ou le volume des résultats fournis par le service web est assez énorme, puisque les réponses sont encapsulée dans un SOAPMessage structuré à partir de balises XML.

    Voici un exemple de réponse du serveur à l'invocation de ma méthode getCommunes

    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlnssd="http://www.w3.org/2001/XMLSchema" xmlnssi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <ns1:getCommunesInCentreResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:WSBDP">
    <getCommunesInCentreReturn href="#id0"/>
    </ns1:getCommunesInCentreResponse>
    <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:WsBdpResultSet" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:WSBDP">
    <colmetadatas soapenc:arrayType="ns2:WsBdpResultSetColumnMetaData[4]" xsi:type="soapenc:Array">
    <colmetadatas href="#id1"/>
    <colmetadatas href="#id2"/>
    <colmetadatas href="#id3"/>
    <colmetadatas href="#id4"/>
    </colmetadatas>
    <request xsi:type="xsd:string">SELECT distinct eco.ID_SIG,eco.NOM, eco.CODE_INSEE1,eco.CODE_AGGLOMERATION FROM APP_WEBDIRAC_BT.E_Poste_electrique epe, APP_WEBDIRAC_BT.E_COMMUNE eco WHERE epe.CENTRE=? AND epe.E_COMMUNE=eco.ID_SIG order by eco.NOM</request>
    <results soapenc:arrayType="xsd:anyType[][1031]" xsi:type="soapenc:Array">
    <results soapenc:arrayType="xsd:anyType[4]" xsi:type="soapenc:Array">
    <results xsi:type="soapenc:decimal">6022</results>
    <results xsi:type="soapenc:string">ABAINVILLE</results>
    <results xsi:type="soapenc:string">55001</results>
    <results xsi:type="soapenc:string">Zone EDF &#xE0; caract&#xE8;re rural</results>
    </results>
    <results soapenc:arrayType="xsd:anyType[4]" xsi:type="soapenc:Array">
    <results xsi:type="soapenc:decimal">6027</results>
    <results xsi:type="soapenc:string">ABAUCOURT HAUTECOURT</results>
    <results xsi:type="soapenc:string">55002</results>
    <results xsi:type="soapenc:string">Zone EDF &#xE0; caract&#xE8;re rural</results>
    </results>



    J'aimerais arriver à réduire la taille de cette réponse, sans trop perdre en performance concernant la deserialisation. (Notamment pouvoir retirer results xsi:type="soapenc:string" dans la réponse serait pas mal )

    Je ne sais pas comment procéder, faut-il :

    (1) implémenter de nouveaux serializer/deserializer dédié à mon objet WSResultSet ?
    dans quel cas j'éviterais peut être un balisage inutile pour une array d'array ...


    (2) Utiliser un outil de compression des flux xml ?


    (3) Désactiver la validation xml des messages SOAP ?


    Comme je suis nouveau, j'ai énormément de mal à trouver des documentations, des exemples et tutoriels pour les 3 méthodes citées, pour peu qu'elles soient envisageable ...

    Auriez-vous déjà rencontré ce genre de problème ? Quelles solutions ?

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut up
    En fait j'aimerais savoir si il était possible d'implémenter une classe de sérialisation et désérialisation propre à mon WSResultSet qui permettrait un échange binaire si possible (i.e des messages SOAP qui contiendrait les données du WSResultSet au format binaire et non plus au format XML avec plein de balises inutiles) ...

    Et sinon y a -t-il déjà des exemples de services web qui reprendraient le même concept que le mien à savoir diffuser des informations à partir d'une base de donnée à partir d'un pseudo "ResultSet".

Discussions similaires

  1. Ne pas envoyer tous les tags d'un flux XML d'un webservice
    Par enderft dans le forum Services Web
    Réponses: 0
    Dernier message: 28/03/2013, 13h34
  2. Réponses: 1
    Dernier message: 25/06/2012, 17h52
  3. Réponses: 2
    Dernier message: 26/11/2010, 21h32
  4. AXIS & les fichiers XML
    Par reeda dans le forum Services Web
    Réponses: 2
    Dernier message: 16/02/2008, 18h34
  5. [DOM] Comment créer des flux XML en java ?
    Par nean_j dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/04/2004, 12h00

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