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

VB.NET Discussion :

WebService problème SOAP et NameSpace


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut WebService problème SOAP et NameSpace
    Bonjour à tous,

    Cela fait plusieurs jours que je parcours le Net à la recherche d'une solution à mon problème.

    Je développe en VB .NET (of course) sous Visual Studio 2010.
    Je réalise actuellement un EDI entre notre société et une compagnie d'assurance pour déposer des documents.
    Pour cela, la compagnie m'a fourni un fichier WSDL et un fichier XSD.
    J'ai donc généré la classe proxy via "Ajouter une référence de Service".
    Jusque là tout va bien. J'arrive me connecter mais je n'arrive pas à passer la requête SOAP

    Le problème se trouve au niveaux des NameSpace :

    Je sors le message suivant :

    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
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <envoyerDocumentsRequest xmlns="http://www.auxiliaire.fr/IGEService">
    <enteteTechnique>
    <identifiantFlux>635749044672083878</identifiantFlux>
    <timeStampFlux>2015-08-11T15:41:07.41</timeStampFlux>
    </enteteTechnique>
     
    <enteteFonctionnel>
    <expert>
    <referenceDossierExpert>123456</referenceDossierExpert>
    <nomExpert>TOTO</nomExpert>
    <telExpert>01.02.03.04.05</telExpert>
    <emailExpert>toto@email.fr</emailExpert>
    </expert>
    <dossier>
    <numeroSocietaireAux>0123456789</numeroSocietaireAux>
    <CRAC>true</CRAC>
    <avenant01>false</avenant01>
    </dossier>
    </enteteFonctionnel>
    <documents xmlns="">
    <document>
    <typeDocument>000_LET_ENV</typeDocument><rawDocument>
    <xop:Include href="cid:http://tempuri.org/1/635749044677020152" xmlns:xop="http://www.w3.org/2004/08/xop/include"/></rawDocument>
    </document>
    </documents>
    </envoyerDocumentsRequest>
    </s:Body>
    Mais pour que la requête SOAP soit reconnue par le parser, il faut qu'elle soit sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.auxiliaire.fr/IGEService">
    <tns:envoyerDocumentsRequest">
    .....
    J'ai tenté d'intercepter le message par IClientMessageInspector pour le modifier. Peine perdue, on peut ajouter des entêtes à la requête mais on ne peut modifier le corps du message.

    Je n'ai pas trouvé comment faire pour ajouter le Namespace "xmlns:tns="http://www.auxiliaire.fr/IGEService" à l'enveloppe SOAP.

    Si quelqu'un pouvait m'aider à avancer ce serait super.

    En remerciant par avance.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut
    J'ai trouvé la réponse à mon problème.

    Il fallait ajouter manuellement aux NameSpace à utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public _xsns As New System.Xml.Serialization.XmlSerializerNamespaces(New System.Xml.XmlQualifiedName() {New System.Xml.XmlQualifiedName("tns", "http://www.auxiliaire.fr/IGEService")}
    )


    Voici le code :


    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    
        <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234"), _
         System.SerializableAttribute(), _
         System.Diagnostics.DebuggerStepThroughAttribute(), _
         System.ComponentModel.DesignerCategoryAttribute("code"), _
         System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://www.auxiliaire.fr/IGEService")> _
        Partial Public Class envoyerDocumentsRequest
            Inherits Object
    
            Implements System.ComponentModel.INotifyPropertyChanged
            <System.Xml.Serialization.XmlNamespaceDeclarations()> _
            Public _xsns As New System.Xml.Serialization.XmlSerializerNamespaces(New System.Xml.XmlQualifiedName() {New System.Xml.XmlQualifiedName("tns", "http://www.auxiliaire.fr/IGEService")})
            Private enteteTechniqueField As enteteTechniqueType
    
            Private enteteFonctionnelField As enteteFonctionnelType
    
            Private documentsField As envoyerDocumentsRequestDocuments
    
            '''<remarks/>
            <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=0)> _
            Public Property enteteTechnique() As enteteTechniqueType
                Get
                    Return Me.enteteTechniqueField
                End Get
                Set(value As enteteTechniqueType)
                    Me.enteteTechniqueField = value
                    Me.RaisePropertyChanged("enteteTechnique")
                End Set
            End Property
    
            '''<remarks/>
            <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=1)> _
            Public Property enteteFonctionnel() As enteteFonctionnelType
                Get
                    Return Me.enteteFonctionnelField
                End Get
                Set(value As enteteFonctionnelType)
                    Me.enteteFonctionnelField = value
                    Me.RaisePropertyChanged("enteteFonctionnel")
                End Set
            End Property
    
            '''<remarks/>
            <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=2)> _
            Public Property documents() As envoyerDocumentsRequestDocuments
                Get
                    Return Me.documentsField
                End Get
                Set(value As envoyerDocumentsRequestDocuments)
                    Me.documentsField = value
                    Me.RaisePropertyChanged("documents")
                End Set
            End Property
    
            Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
    
            Protected Sub RaisePropertyChanged(ByVal propertyName As String)
                Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
                If (Not (propertyChanged) Is Nothing) Then
                    propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
                End If
            End Sub
        End Class

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

Discussions similaires

  1. probléme SOAP de recup document xml et webservices
    Par T4GAD4 dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2013, 10h01
  2. D6+Webservices+problème avec le message SOAP généré
    Par vincentj dans le forum Web & réseau
    Réponses: 4
    Dernier message: 21/10/2009, 12h09
  3. [VB.NET, SOAP, WEBSERVICE] Problème avec le POST
    Par Couston dans le forum Services Web
    Réponses: 1
    Dernier message: 19/02/2008, 20h19
  4. [Web Service][SOAP] WebService : problème d'authentification
    Par SuperGilou dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 11/06/2007, 15h16
  5. [DOM] Problème avec les namespaces
    Par clincks dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/06/2006, 20h40

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