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 :

Web Service : Réponse vide


Sujet :

VB.NET

  1. #1
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut Web Service : Réponse vide
    Bonjour à toute la communauté,

    j'essaye de me connecter à un Web Service via DotNet en ajoutant une référence de service et en indiquant l'adresse du WSDL.
    Une fois validé, VisualStudio me génère bien les fichiers XSD et Référence
    J'essaye donc d'utiliser les classes auto-générées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                Dim Client As New BCSS_Test2.TestConnectionServicePortTypeClient
                Client.Endpoint.Address = New EndpointAddress("https://bcssksz-services-test.smals.be/SOA4520/TestConnectionServiceService/sendTestMessage")
                Client.Open()
                Trace.WriteLine("Client.State : " & [Enum].GetName(Client.State.GetType, Client.State))
                Trace.WriteLine("Client.Endpoint.Address.Uri.AbsoluteUri : " & Client.Endpoint.Address.Uri.AbsoluteUri)
                Trace.WriteLine("Client.Endpoint.Address.Uri.UserInfo : " & Client.Endpoint.Address.Uri.UserInfo)
     
                Dim request As New BCSS_Test2.SendTestMessageRequestType
                request.echo = "hello cbss service"
                Dim reponse = Client.sendTestMessage(request)
                Trace.WriteLine("reponse echo : " & reponse.echo)
                Trace.WriteLine("reponse informationCBSS.ticketCBSS : " & reponse.informationCBSS.ticketCBSS)
                Trace.WriteLine("reponse informationCBSS.timestampReceive : " & reponse.informationCBSS.timestampReceive.ToString)
                Trace.WriteLine("reponse informationCBSS.timestampReply : " & reponse.informationCBSS.timestampReply.ToString)
    J'ai bien une réponse mais toutes les propriétés de l'objet sont null :
    Nom : nullProperty.png
Affichages : 258
Taille : 10,6 Ko

    J'ai bien sûr testé cela avec SoapUI pour m'assurer que le service retournait bien la bonne réponse et il n'y a aucun soucis à ce niveau :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
       <soapenv:Header/>
       <soapenv:Body>
          <v1:sendTestMessageResponse>
             <informationCustomer/>
             <informationCBSS>
                <ticketCBSS/>
                <timestampReceive>2015-06-22T13:28:35.088Z</timestampReceive>
                <timestampReply>2015-06-22T13:28:35.089Z</timestampReply>
             </informationCBSS>
             <echo>hello cbss service</echo>
             <sslCertificate>CN=celeritas.smals.be,C=BE,OU=Smals,O=Federal Government - Social Security - Client</sslCertificate>
          </v1:sendTestMessageResponse>
       </soapenv:Body>
    </soapenv:Envelope>

    Pour bien faire je devrais avoir la même réponse avec VisualStudio.

    J'ai cherché sur le net et d'après diverses lectures, il semblerait que se soit un problème de dé-sérialisation connu entre Java et DotNet.

    Avez-vous déjà été confronté à ce problème et si oui comment l'avez-vous réglé?

    EDIT : J'ai essayé de mettre les fichiers WSDL et XSD dans les balises CODE mais cela fait planter le site. Je les ai donc mis en pièce jointe.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    J'ai voulu vérifier ce qui était envoyé et ce que je recevais comme réponse SOAP.
    J'ai donc mi dans le fichier config :
    Code xml : 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
     <system.diagnostics>
        <trace autoflush="true"/>
        <sources>
          <source name="System.Net" >
            <listeners>
              <add name="TraceFile"/>
            </listeners>
          </source>
          <source name="System.Net.Sockets" >
            <listeners>
              <add name="TraceFile"/>
            </listeners>
          </source>
        </sources>
        <sharedListeners>
          <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener"
            initializeData="trace.log"/>
        </sharedListeners>
        <switches>
          <add name="System.Net" value="Verbose"/>
          <add name="System.Net.Sockets" value="Verbose"/>
          <add name="XmlSerialization.Compilation" value="1" />
        </switches>
      </system.diagnostics>

    Pour l'envoi j'ai bien :
    System.Net Verbose: 0 : [6108] Data from ConnectStream#54046063::Write
    System.Net Verbose: 0 : [6108] 00000000 : 3C 73 3A 45 6E 76 65 6C-6F 70 65 20 78 6D 6C 6E : <s:Envelope xmln
    System.Net Verbose: 0 : [6108] 00000010 : 73 3A 73 3D 22 68 74 74-70 3A 2F 2F 73 63 68 65 : s:s="http://sche
    System.Net Verbose: 0 : [6108] 00000020 : 6D 61 73 2E 78 6D 6C 73-6F 61 70 2E 6F 72 67 2F : mas.xmlsoap.org/
    System.Net Verbose: 0 : [6108] 00000030 : 73 6F 61 70 2F 65 6E 76-65 6C 6F 70 65 2F 22 3E : soap/envelope/">
    System.Net Verbose: 0 : [6108] 00000040 : 3C 73 3A 42 6F 64 79 20-78 6D 6C 6E 73 3A 78 73 : <s:Body xmlns:xs
    System.Net Verbose: 0 : [6108] 00000050 : 69 3D 22 68 74 74 70 3A-2F 2F 77 77 77 2E 77 33 : i="http://www.w3
    System.Net Verbose: 0 : [6108] 00000060 : 2E 6F 72 67 2F 32 30 30-31 2F 58 4D 4C 53 63 68 : .org/2001/XMLSch
    System.Net Verbose: 0 : [6108] 00000070 : 65 6D 61 2D 69 6E 73 74-61 6E 63 65 22 20 78 6D : ema-instance" xm
    System.Net Verbose: 0 : [6108] 00000080 : 6C 6E 73 3A 78 73 64 3D-22 68 74 74 70 3A 2F 2F : lns:xsd="http://
    System.Net Verbose: 0 : [6108] 00000090 : 77 77 77 2E 77 33 2E 6F-72 67 2F 32 30 30 31 2F : www.w3.org/2001/
    System.Net Verbose: 0 : [6108] 000000A0 : 58 4D 4C 53 63 68 65 6D-61 22 3E 3C 73 65 6E 64 : XMLSchema"><send
    System.Net Verbose: 0 : [6108] 000000B0 : 54 65 73 74 4D 65 73 73-61 67 65 52 65 71 75 65 : TestMessageReque
    System.Net Verbose: 0 : [6108] 000000C0 : 73 74 20 78 6D 6C 6E 73-3D 22 68 74 74 70 3A 2F : st xmlns="http:/
    System.Net Verbose: 0 : [6108] 000000D0 : 2F 6B 73 7A 62 63 73 73-2E 66 67 6F 76 2E 62 65 : /kszbcss.fgov.be
    System.Net Verbose: 0 : [6108] 000000E0 : 2F 69 6E 74 66 2F 54 65-73 74 43 6F 6E 6E 65 63 : /intf/TestConnec
    System.Net Verbose: 0 : [6108] 000000F0 : 74 69 6F 6E 53 65 72 76-69 63 65 53 65 72 76 69 : tionServiceServi
    System.Net Verbose: 0 : [6108] 00000100 : 63 65 2F 76 31 22 3E 3C-65 63 68 6F 20 78 6D 6C : ce/v1"><echo xml
    System.Net Verbose: 0 : [6108] 00000110 : 6E 73 3D 22 22 3E 68 65-6C 6C 6F 20 63 62 73 73 : ns="">hello cbss
    System.Net Verbose: 0 : [6108] 00000120 : 20 73 65 72 76 69 63 65-3C 2F 65 63 68 6F 3E 3C : service</echo><
    System.Net Verbose: 0 : [6108] 00000130 : 2F 73 65 6E 64 54 65 73-74 4D 65 73 73 61 67 65 : /sendTestMessage
    System.Net Verbose: 0 : [6108] 00000140 : 52 65 71 75 65 73 74 3E-3C 2F 73 3A 42 6F 64 79 : Request></s:Body
    System.Net Verbose: 0 : [6108] 00000150 : 3E 3C 2F 73 3A 45 6E 76-65 6C 6F 70 65 3E : ></s:Envelope>
    Et je reçois bien la bonne réponse :
    System.Net Verbose: 0 : [6108] Data from ConnectStream#6243847::Read
    System.Net Verbose: 0 : [6108] 00000027 : 3C 73 3A 45 6E 76 65 6C-6F 70 65 20 78 6D 6C 6E : <s:Envelope xmln
    System.Net Verbose: 0 : [6108] 00000037 : 73 3A 73 3D 22 68 74 74-70 3A 2F 2F 73 63 68 65 : s:s="http://sche
    System.Net Verbose: 0 : [6108] 00000047 : 6D 61 73 2E 78 6D 6C 73-6F 61 70 2E 6F 72 67 2F : mas.xmlsoap.org/
    System.Net Verbose: 0 : [6108] 00000057 : 73 6F 61 70 2F 65 6E 76-65 6C 6F 70 65 2F 22 3E : soap/envelope/">
    System.Net Verbose: 0 : [6108] 00000067 : 3C 73 3A 42 6F 64 79 20-78 6D 6C 6E 73 3A 78 73 : <s:Body xmlns:xs
    System.Net Verbose: 0 : [6108] 00000077 : 69 3D 22 68 74 74 70 3A-2F 2F 77 77 77 2E 77 33 : i="http://www.w3
    System.Net Verbose: 0 : [6108] 00000087 : 2E 6F 72 67 2F 32 30 30-31 2F 58 4D 4C 53 63 68 : .org/2001/XMLSch
    System.Net Verbose: 0 : [6108] 00000097 : 65 6D 61 2D 69 6E 73 74-61 6E 63 65 22 20 78 6D : ema-instance" xm
    System.Net Verbose: 0 : [6108] 000000A7 : 6C 6E 73 3A 78 73 64 3D-22 68 74 74 70 3A 2F 2F : lns:xsd="http://
    System.Net Verbose: 0 : [6108] 000000B7 : 77 77 77 2E 77 33 2E 6F-72 67 2F 32 30 30 31 2F : www.w3.org/2001/
    System.Net Verbose: 0 : [6108] 000000C7 : 58 4D 4C 53 63 68 65 6D-61 22 3E 3C 76 31 3A 73 : XMLSchema"><v1:s
    System.Net Verbose: 0 : [6108] 000000D7 : 65 6E 64 54 65 73 74 4D-65 73 73 61 67 65 52 65 : endTestMessageRe
    System.Net Verbose: 0 : [6108] 000000E7 : 73 70 6F 6E 73 65 20 78-6D 6C 6E 73 3A 76 31 3D : sponse xmlns:v1=
    System.Net Verbose: 0 : [6108] 000000F7 : 22 68 74 74 70 3A 2F 2F-6B 73 7A 62 63 73 73 2E : "http://kszbcss.
    System.Net Verbose: 0 : [6108] 00000107 : 66 67 6F 76 2E 62 65 2F-69 6E 74 66 2F 54 65 73 : fgov.be/intf/Tes
    System.Net Verbose: 0 : [6108] 00000117 : 74 43 6F 6E 6E 65 63 74-69 6F 6E 53 65 72 76 69 : tConnectionServi
    System.Net Verbose: 0 : [6108] 00000127 : 63 65 53 65 72 76 69 63-65 2F 76 31 22 3E 3C 69 : ceService/v1"><i
    System.Net Verbose: 0 : [6108] 00000137 : 6E 66 6F 72 6D 61 74 69-6F 6E 43 75 73 74 6F 6D : nformationCustom
    System.Net Verbose: 0 : [6108] 00000147 : 65 72 2F 3E 3C 69 6E 66-6F 72 6D 61 74 69 6F 6E : er/><information
    System.Net Verbose: 0 : [6108] 00000157 : 43 42 53 53 3E 3C 74 69-63 6B 65 74 43 42 53 53 : CBSS><ticketCBSS
    System.Net Verbose: 0 : [6108] 00000167 : 2F 3E 3C 74 69 6D 65 73-74 61 6D 70 52 65 63 65 : /><timestampRece
    System.Net Verbose: 0 : [6108] 00000177 : 69 76 65 3E 32 30 31 35-2D 30 36 2D 32 39 54 30 : ive>2015-06-29T0
    System.Net Verbose: 0 : [6108] 00000187 : 38 3A 34 30 3A 31 30 2E-35 33 32 5A 3C 2F 74 69 : 8:40:10.532Z</ti
    System.Net Verbose: 0 : [6108] 00000197 : 6D 65 73 74 61 6D 70 52-65 63 65 69 76 65 3E 3C : mestampReceive><
    System.Net Verbose: 0 : [6108] 000001A7 : 74 69 6D 65 73 74 61 6D-70 52 65 70 6C 79 3E 32 : timestampReply>2
    System.Net Verbose: 0 : [6108] 000001B7 : 30 31 35 2D 30 36 2D 32-39 54 30 38 3A 34 30 3A : 015-06-29T08:40:
    System.Net Verbose: 0 : [6108] 000001C7 : 31 30 2E 35 33 33 5A 3C-2F 74 69 6D 65 73 74 61 : 10.533Z</timesta
    System.Net Verbose: 0 : [6108] 000001D7 : 6D 70 52 65 70 6C 79 3E-3C 2F 69 6E 66 6F 72 6D : mpReply></inform
    System.Net Verbose: 0 : [6108] 000001E7 : 61 74 69 6F 6E 43 42 53-53 3E 3C 65 63 68 6F 3E : ationCBSS><echo>
    System.Net Verbose: 0 : [6108] 000001F7 : 68 65 6C 6C 6F 20 63 62-73 73 20 73 65 72 76 69 : hello cbss servi
    System.Net Verbose: 0 : [6108] 00000207 : 63 65 3C 2F 65 63 68 6F-3E 3C 73 73 6C 43 65 72 : ce</echo><sslCer
    System.Net Verbose: 0 : [6108] 00000217 : 74 69 66 69 63 61 74 65-3E 43 4E 3D 63 65 6C 65 : tificate>CN=cele
    System.Net Verbose: 0 : [6108] 00000227 : 72 69 74 61 73 2E 73 6D-61 6C 73 2E 62 65 2C 43 : ritas.smals.be,C
    System.Net Verbose: 0 : [6108] 00000237 : 3D 42 45 2C 4F 55 3D 53-6D 61 6C 73 2C 4F 3D 46 : =BE,OU=Smals,O=F
    System.Net Verbose: 0 : [6108] 00000247 : 65 64 65 72 61 6C 20 47-6F 76 65 72 6E 6D 65 6E : ederal Governmen
    System.Net Verbose: 0 : [6108] 00000257 : 74 20 2D 20 53 6F 63 69-61 6C 20 53 65 63 75 72 : t - Social Secur
    System.Net Verbose: 0 : [6108] 00000267 : 69 74 79 20 2D 20 43 6C-69 65 6E 74 3C 2F 73 73 : ity - Client</ss
    System.Net Verbose: 0 : [6108] 00000277 : 6C 43 65 72 74 69 66 69-63 61 74 65 3E 3C 2F 76 : lCertificate></v
    System.Net Verbose: 0 : [6108] 00000287 : 31 3A 73 65 6E 64 54 65-73 74 4D 65 73 73 61 67 : 1:sendTestMessag
    System.Net Verbose: 0 : [6108] 00000297 : 65 52 65 73 70 6F 6E 73-65 3E 3C 2F 73 3A 42 6F : eResponse></s:Bo
    System.Net Verbose: 0 : [6108] 000002A7 : 64 79 3E 3C 2F 73 3A 45-6E 76 65 6C 6F 70 65 3E : dy></s:Envelope>
    Qui une fois remise en forme est :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
         <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
              <v1:sendTestMessageResponse xmlns:v1="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
                   <informationCustomer/>
                   <informationCBSS>
                        <ticketCBSS/>
                        <timestampReceive>2015-06-29T08:40:10.532Z</timestampReceive>
                        <timestampReply>2015-06-29T08:40:10.533Z</timestampReply>
                   </informationCBSS>
                   <echo>hello cbss service</echo>
                   <sslCertificate>CN=celeritas.smals.be,C=BE,OU=Smals,O=Federal Government - Social Security - Client</sslCertificate>
              </v1:sendTestMessageResponse>
         </s:Body>
    </s:Envelope>

    Donc il s'agit belle et bien d'un problème de dé-sérialisation de la réponse.
    Je continue mes recherches, si quelqu'un à une piste je suis bien sûr preneur...

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Il semblerait que ce soit un problème de namespace.
    Dans la réponse j'ai :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
         <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
              <v1:sendTestMessageResponse xmlns:v1="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
                   <informationCustomer/>
                   <informationCBSS>
                        <ticketCBSS/>
                        <timestampReceive>2015-06-29T08:40:10.532Z</timestampReceive>
                        <timestampReply>2015-06-29T08:40:10.533Z</timestampReply>
                   </informationCBSS>
                   <echo>hello cbss service</echo>
                   <sslCertificate>CN=celeritas.smals.be,C=BE,OU=Smals,O=Federal Government - Social Security - Client</sslCertificate>
              </v1:sendTestMessageResponse>
         </s:Body>
    </s:Envelope>

    On peut voir à la ligne 3 le préfixe v1

    Alors que dans mon code je ne retrouve pas ce préfixe, ligne 7 :
    Code vb.net : 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
        <System.Diagnostics.DebuggerStepThroughAttribute(),  _
         System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"),  _
         System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced),  _
         System.ServiceModel.MessageContractAttribute(IsWrapped:=false)>  _
        Partial Public Class sendTestMessageResponse
     
            <System.ServiceModel.MessageBodyMemberAttribute(Name:="sendTestMessageResponse", [Namespace]:="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1", Order:=0)>  _
            Public sendTestMessageResponse1 As BCSS_Test2.SendTestMessageResponseType
     
            Public Sub New()
                MyBase.New
            End Sub
     
            Public Sub New(ByVal sendTestMessageResponse1 As BCSS_Test2.SendTestMessageResponseType)
                MyBase.New
                Me.sendTestMessageResponse1 = sendTestMessageResponse1
            End Sub
        End Class

    ligne 6 :
    Code vb.net : 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
     
        <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234"), _
         System.SerializableAttribute(), _
         System.Diagnostics.DebuggerStepThroughAttribute(), _
         System.ComponentModel.DesignerCategoryAttribute("code"), _
         System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1")> _
        Partial Public Class SendTestMessageResponseType
            Inherits Object
            Implements System.ComponentModel.INotifyPropertyChanged
     
            Private informationCBSSField As InformationCBSSType
     
            Private echoField As String
     
            Private sslCertificateField As String
     
            '''<remarks/>
            <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=0)> _
            Public Property informationCBSS() As InformationCBSSType
                Get
                    Return Me.informationCBSSField
                End Get
                Set(value As InformationCBSSType)
                    Me.informationCBSSField = value
                    Me.RaisePropertyChanged("informationCBSS")
                End Set
            End Property
     
            '''<remarks/>
            <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=1)> _
            Public Property echo() As String
                Get
                    Return Me.echoField
                End Get
                Set(value As String)
                    Me.echoField = value
                    Me.RaisePropertyChanged("echo")
                End Set
            End Property
     
            '''<remarks/>
            <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=2)> _
            Public Property sslCertificate() As String
                Get
                    Return Me.sslCertificateField
                End Get
                Set(value As String)
                    Me.sslCertificateField = value
                    Me.RaisePropertyChanged("sslCertificate")
                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

    Je ne sais malheureusement pas comment l'intégrer

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Je continue mes recherches. Un collègue m'a orienté vers une autre piste.

    Il a vu que les demandes et réponses de VS et SoapUI ne sont pas les mêmes.

    Si on compare la demande VS :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <sendTestMessageRequest xmlns="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
                <echo xmlns="">hello cbss service</echo>
            </sendTestMessageRequest>
        </s:Body>
    </s:Envelope>

    et la demande SoapUi :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
       <soapenv:Header/>
       <soapenv:Body>
          <v1:sendTestMessageRequest>
             <!--type: string-->
             <echo>hello cbss service</echo>
          </v1:sendTestMessageRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    Bon jusqu'ici la différence est minime. VS met directement le namespace sur les éléments sendTestMessageRequest et echo alors que SoapUI passe par un nommage v1 pour le réutilisé sur sendTestMessageRequest.

    Par contre concernant la réponse, réponse VS :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
         <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
              <v1:sendTestMessageResponse xmlns:v1="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
                   <informationCustomer/>
                   <informationCBSS>
                        <ticketCBSS/>
                        <timestampReceive>2015-06-29T08:40:10.532Z</timestampReceive>
                        <timestampReply>2015-06-29T08:40:10.533Z</timestampReply>
                   </informationCBSS>
                   <echo>hello cbss service</echo>
                   <sslCertificate>CN=celeritas.smals.be,C=BE,OU=Smals,O=Federal Government - Social Security - Client</sslCertificate>
              </v1:sendTestMessageResponse>
         </s:Body>
    </s:Envelope>

    Réponse SoapUI :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
       <soapenv:Header/>
       <soapenv:Body>
          <v1:sendTestMessageResponse>
             <informationCustomer/>
             <informationCBSS>
                <ticketCBSS/>
                <timestampReceive>2015-08-25T07:50:28.881Z</timestampReceive>
                <timestampReply>2015-08-25T07:50:28.891Z</timestampReply>
             </informationCBSS>
             <echo>hello cbss service</echo>
             <sslCertificate>CN=incursus.smals.be,C=BE,OU=Smals,O=Federal Government - Social Security - Client</sslCertificate>
          </v1:sendTestMessageResponse>
       </soapenv:Body>
    </soapenv:Envelope>

    On peut voir que SoapUI reçoit une réponse différente que VS.
    Dans la réponse que SoapUi reçoit, le nommage du namspace v1 à la ligne 1 se fait avant son utilisation à la ligne 4 alors que dans VS il fait tout sur la même ligne en ligne 3, du coup j'ai l'impression qu'il n'arrive pas à voir ce namspace et qu'il n'arrive donc pas à faire les bons liens pour la désérialisation.

    [EDIT]
    J'ai aussi tenté de modifier le message envoyé par SoapUI pour enlever le v1 à la sauce VS :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
       <soapenv:Header/>
       <soapenv:Body>
          <sendTestMessageRequest xmlns="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
             <!--type: string-->
             <echo xmlns="">hello cbss service</echo>
          </sendTestMessageRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    Et du coup je reçois bien la même réponse que VS avec le nommage et l'utilisation du V1 sur la même ligne :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Header/>
       <soapenv:Body>
          <v1:sendTestMessageResponse xmlns:v1="http://kszbcss.fgov.be/intf/TestConnectionServiceService/v1">
             <informationCustomer/>
             <informationCBSS>
                <ticketCBSS/>
                <timestampReceive>2015-08-25T08:29:51.115Z</timestampReceive>
                <timestampReply>2015-08-25T08:29:51.117Z</timestampReply>
             </informationCBSS>
             <echo>hello cbss service</echo>
             <sslCertificate>CN=incursus.smals.be,C=BE,OU=Smals,O=Federal Government - Social Security - Client</sslCertificate>
          </v1:sendTestMessageResponse>
       </soapenv:Body>
    </soapenv:Envelope>

    [/EDIT]

    C'est une nouvelle piste mais malheureusement je n'ai aucune idée pour corriger ce comportement.
    Je suis preneur de tout avis.

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut


    J'ai trouvé une solution fonctionnelle même si elle ne me plait pas totalement...
    Il "suffit" d'utiliser le proxi .Net 2.0
    Trouvé sur cette page : http://webservices20.blogspot.be/200...al-studio.html

    1. Press the "Add Service Reference" as usual
    2. Press the "Advanced..." button
    3. Select "Add Web Reference..."
    4. Use the good old .Net 2.0 proxy flavours
    Les choses sérieuses peuvent commencer...

    Si quelqu'un à une solution pour le faire fonctionner "normalement" je reste preneur...

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Après de multiples échanges avec les développeurs du service web utilisé. Je leur ai montré la "solution" que j'avais trouvée pour pouvoir me connecter à leurs services et ils ont regardé plus en profondeur pourquoi cela ne passait pas avec la dernière version. Il s'avère que la réponse ne respectait pas le contrat du XSD en retournant informationCustomer et ticketCBSS vide.

    Ils ont corrigé leurs services et maintenant tout fonctionne bien.

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Après de multiples échanges avec les développeurs du service web utilisé. Je leur ai montré la "solution" que j'avais trouvée pour pouvoir me connecter à leurs services et ils ont regardé plus en profondeur pourquoi cela ne passait pas avec la dernière version. Il s'avère que la réponse ne respectait pas le contrat du XSD en retournant informationCustomer et ticketCBSS vide.

    Ils ont corrigé leurs services et maintenant tout fonctionne bien.
    C'est quand même super râlant quand on cherche la cause d'un bug pendant un long moment pour découvrir au final que le bug n'est pas chez nous mais un objet tiers qu'on utilise...
    Kropernic

  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    C'est effectivement râlant mais ça fait aussi plaisir de voir qu'au final ce n'est pas de notre faute et ce qui fait encore plus plaisir c'est la rapidité d'intervention du service concerné. Ils ont corrigé le bug l'après-midi même.
    Là où je râle le plus c'est que VS ne lève pas une exception pour dire que la réponse ne respecte pas le contrat du XSD. Il n'est pas encore parfait...

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

Discussions similaires

  1. réponse complexe d'un web-service
    Par ultimus dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2012, 22h05
  2. [ZF 1.11] Zend_Soap_Client, chaine envoyée au web service vide
    Par Lugdum dans le forum Zend Framework
    Réponses: 0
    Dernier message: 11/06/2011, 11h30
  3. Réponse après appel web service
    Par WDKyle dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/06/2011, 16h11
  4. Web Services avec réponse multiple
    Par mosit dans le forum Langage
    Réponses: 1
    Dernier message: 27/08/2009, 16h50
  5. Web Service Axis recoit parametre vide
    Par koni42 dans le forum Services Web
    Réponses: 0
    Dernier message: 17/03/2009, 17h55

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