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 Discussion :

web service - soap security header - binding configuration


Sujet :

Services Web

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut web service - soap security header - binding configuration
    Bonjour,

    dans une application en .net 4.5, j'ajoute une référence de service via le wsdl fourni par le fournisseur. Ce service n'est pas sécurisé.

    Ma class proxy générée me permet bien de faire les appels au web service (appels qui aboutissent et font bien ce qu'ils ont à faire), mais ne me permet pas de lire la réponse envoyée par le web service.

    En passant par soapUI voici le format de la réponse qui m'est renvoyée:

    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
     
    <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <SOAP-ENV:Header>
          <wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
             <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                <wsu:Created>2013-10-29T10:00:20Z</wsu:Created>
                <wsu:Expires>2013-10-29T10:00:25Z</wsu:Expires>
             </wsu:Timestamp>
          </wsse:Security>
       </SOAP-ENV:Header>
       <SOAP-ENV:Body>
          <tns:PULSE3_EAI_id04_WSResponse xmlns:tns="http://srblure01-pic:8180/engine53/52/WebserviceLauncher">
             <tns:v_resultat xsi:type="string">0</tns:v_resultat>
          </tns:PULSE3_EAI_id04_WSResponse>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Le problème vient donc du header contenant le mustunderstand = 1.

    Premier test que je fait: configurer mon client pour ne pas tenir compte du mustunderstand --> Mon appli ne crache pas d'erreur mais je ne reçois plus la réponse (ce que je souhaite faire quand même).

    Ensuite viennent les changement du service model binding de mon client et là je suis perdu.

    Une idée?

    D'avance merci.

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour à tous

    Je profite du calme de la période pour me re pencher sur ce problème.

    Alors après avoir perdu pas mal de temps à essayer de modifier la configuration du binding, je suis passer à l'utilisation d'un message inspector.

    Pour faire court j'intercepte le message renvoyer par le service soap et je supprime les balises qui semble poser problèmes.

    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
    public void AfterReceiveReply(ref Message reply, object correlationState)
            {
                MessageBuffer buf = reply.CreateBufferedCopy(Int32.MaxValue);
                Message msg = buf.CreateMessage();
     
                MemoryStream ms = new MemoryStream();
                XmlWriter writer = XmlWriter.Create(ms);
                msg.WriteMessage(writer); // the message was consumed here
                writer.Flush();
                ms.Position = 0;
     
                XElement xmlMessage = XElement.Load(ms);
     
                try
                {
                    xmlMessage.Descendants().Where(e => e.Name.LocalName.Equals("Security")).Remove();
                }
                catch (Exception e)
                { 
     
                }
     
                ms = new MemoryStream();
                xmlMessage.Save(ms);
                ms.Position = 0;
                XmlReader reader = XmlReader.Create(ms);
                Message newMessage = Message.CreateMessage(reader, int.MaxValue, reply.Version);
                newMessage.Properties.CopyProperties(msg.Properties);
                reply = newMessage;
            }
    En faisant un pas à pas dans cette méthode j'intercepte bien le message soap , je le modifie bien et il semblerait que je renvoi bien une nouvelle instance du message pour qu'il continue son cheminement dans les tuyaux.

    Mais ... toujours rien. L'appel au web service me renvoi toujours null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sr.PULSE3_EAI_id04_WSPortTypeClient client = new sr.PULSE3_EAI_id04_WSPortTypeClient();
                    client.Endpoint.Behaviors.Add(new MyEndpointBehavior());
     
                    sr.PULSE3_EAI_id04_WSIN p_in = new sr.PULSE3_EAI_id04_WSIN();
                    p_in.v_numContrat = "20120261011";
     
                    sr.PULSE3_EAI_id04_WSOUT p_out = client.PULSE3_EAI_id04_WS(p_in);
     
                    if (p_out != null)
                        tb_res.Text = p_out.v_resultat;
                    else
                        tb_res.Text = "ended";
    Par acquis de conscience je refais le test en ajoutant mon service soap par Web References, et non par Service References, à ma solution, toujours pareil: null est retourné.

    Du coup je me dis que c'est la classe Proxy qui est mal générée par vs2012. Mais avec mes maigres connaissances en web service je ne vois rien d'anormal

    Et vous?

    voici le wsdl:
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <wsdl:definitions xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy" xmlns:tns="http://srblure01-pic:8180/engine53/52" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://srblure01-pic:8180/engine53/52">
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:TransportBinding>
    <wsp:Policy>
    <sp:TransportToken>
    <wsp:Policy>
    <sp:HttpsToken RequireClientCertificate="false"/>
    <sp:AlgorithmSuite>
    <wsp:Policy>
    <sp:Basic256/>
    <sp:Layout>
    <wsp:Policy>
    <sp:Lax/>
    <sp:IncludeTimestamp/>
    </wsp:Policy>
    </sp:Layout>
    </wsp:Policy>
    </sp:AlgorithmSuite>
    </wsp:Policy>
    </sp:TransportToken>
    </wsp:Policy>
    </sp:TransportBinding>
    <sp:SignedSupportingTokens>
    <wsp:Policy>
    <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
    <wsp:Policy>
    <sp:WssUsernameToken10/>
    </wsp:Policy>
    </sp:UsernameToken>
    </wsp:Policy>
    </sp:SignedSupportingTokens>
    <sp:Wss10>
    <wsp:Policy>
    <sp:MustSupportRefKeyIdentifier/>
    <sp:MustSupportRefIssuerSerial/>
    </wsp:Policy>
    </sp:Wss10>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <wsdl:types>
    <xsd:schema elementFormDefault="qualified" targetNamespace="http://srblure01-pic:8180/engine53/52">
    <xsd:element name="PULSE3_EAI_id04_WSIN">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="v_numContrat" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="PULSE3_EAI_id04_WSOUT">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="v_resultat" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    </wsdl:types>
    <wsdl:message name="PULSE3_EAI_id04_WSResponse">
    <wsdl:part element="tns:PULSE3_EAI_id04_WSOUT" name="PULSE3_EAI_id04_WSReturn"/>
    </wsdl:message>
    <wsdl:message name="PULSE3_EAI_id04_WSRequest">
    <wsdl:part element="tns:PULSE3_EAI_id04_WSIN" name="PULSE3_EAI_id04_WSInput"/>
    </wsdl:message>
    <wsdl:portType name="PULSE3_EAI_id04_WSPortType">
    <wsdl:operation name="PULSE3_EAI_id04_WS">
    <wsdl:input message="tns:PULSE3_EAI_id04_WSRequest"/>
    <wsdl:output message="tns:PULSE3_EAI_id04_WSResponse"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="PULSE3_EAI_id04_WSBinding" type="tns:PULSE3_EAI_id04_WSPortType">
    <wsp:PolicyReference URI="#PULSE3_EAI_id04_WSBinding_policy"/>
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="PULSE3_EAI_id04_WS">
    <soap:operation soapAction="PULSE3_EAI_id04_WS#1#EAII" style="document" wsdl:required="true"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="PULSE3_EAI_id04_WS">
    <wsdl:port binding="tns:PULSE3_EAI_id04_WSBinding" name="PULSE3_EAI_id04_WSPort">
    <soap:address location="http://srblure01-pic:8180/engine53/52/WebserviceLauncher"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    et la classe proxy générée:

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
        [System.ServiceModel.ServiceContractAttribute(Namespace="http://srblure01-pic:8180/engine53/52", ConfigurationName="sr.PULSE3_EAI_id04_WSPortType")]
        public interface PULSE3_EAI_id04_WSPortType {
     
            // CODEGEN : La génération du contrat de message depuis l'opération PULSE3_EAI_id04_WS n'est ni RPC, ni encapsulée dans un document.
            [System.ServiceModel.OperationContractAttribute(Action = "PULSE3_EAI_id04_WS#1#EAII", ReplyAction = "*")]
            [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
            WpfApplication4.sr.PULSE3_EAI_id04_WSResponse PULSE3_EAI_id04_WS(WpfApplication4.sr.PULSE3_EAI_id04_WSRequest request);
     
            [System.ServiceModel.OperationContractAttribute(Action = "PULSE3_EAI_id04_WS#1#EAII", ReplyAction = "*")]
            System.Threading.Tasks.Task<WpfApplication4.sr.PULSE3_EAI_id04_WSResponse> PULSE3_EAI_id04_WSAsync(WpfApplication4.sr.PULSE3_EAI_id04_WSRequest request);
        }
     
        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18060")]
        [System.SerializableAttribute()]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://srblure01-pic:8180/engine53/52")]
        public partial class PULSE3_EAI_id04_WSIN : object, System.ComponentModel.INotifyPropertyChanged {
     
            private string v_numContratField;
     
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute(Order=0)]
            public string v_numContrat {
                get {
                    return this.v_numContratField;
                }
                set {
                    this.v_numContratField = value;
                    this.RaisePropertyChanged("v_numContrat");
                }
            }
     
            public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
     
            protected void RaisePropertyChanged(string propertyName) {
                System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
                if ((propertyChanged != null)) {
                    propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
                }
            }
        }
     
        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18060")]
        [System.SerializableAttribute()]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://srblure01-pic:8180/engine53/52")]
        public partial class PULSE3_EAI_id04_WSOUT : object, System.ComponentModel.INotifyPropertyChanged {
     
            private string v_resultatField;
     
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute(Order=0)]
            public string v_resultat {
                get {
                    return this.v_resultatField;
                }
                set {
                    this.v_resultatField = value;
                    this.RaisePropertyChanged("v_resultat");
                }
            }
     
            public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
     
            protected void RaisePropertyChanged(string propertyName) {
                System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
                if ((propertyChanged != null)) {
                    propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
                }
            }
        }
     
        [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)]
        public partial class PULSE3_EAI_id04_WSRequest {
     
            [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://srblure01-pic:8180/engine53/52", Order=0)]
            public WpfApplication4.sr.PULSE3_EAI_id04_WSIN PULSE3_EAI_id04_WSIN;
     
            public PULSE3_EAI_id04_WSRequest() {
            }
     
            public PULSE3_EAI_id04_WSRequest(WpfApplication4.sr.PULSE3_EAI_id04_WSIN PULSE3_EAI_id04_WSIN) {
                this.PULSE3_EAI_id04_WSIN = PULSE3_EAI_id04_WSIN;
            }
        }
     
        [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)]
        public partial class PULSE3_EAI_id04_WSResponse {
     
            [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://srblure01-pic:8180/engine53/52", Order=0)]
            public WpfApplication4.sr.PULSE3_EAI_id04_WSOUT PULSE3_EAI_id04_WSOUT;
     
            public PULSE3_EAI_id04_WSResponse() {
            }
     
            public PULSE3_EAI_id04_WSResponse(WpfApplication4.sr.PULSE3_EAI_id04_WSOUT PULSE3_EAI_id04_WSOUT) {
                this.PULSE3_EAI_id04_WSOUT = PULSE3_EAI_id04_WSOUT;
            }
        }
     
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
        public interface PULSE3_EAI_id04_WSPortTypeChannel : WpfApplication4.sr.PULSE3_EAI_id04_WSPortType, System.ServiceModel.IClientChannel {
        }
     
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
        public partial class PULSE3_EAI_id04_WSPortTypeClient : System.ServiceModel.ClientBase<WpfApplication4.sr.PULSE3_EAI_id04_WSPortType>, WpfApplication4.sr.PULSE3_EAI_id04_WSPortType {
     
            public PULSE3_EAI_id04_WSPortTypeClient() {
            }
     
            public PULSE3_EAI_id04_WSPortTypeClient(string endpointConfigurationName) : 
                    base(endpointConfigurationName) {
            }
     
            public PULSE3_EAI_id04_WSPortTypeClient(string endpointConfigurationName, string remoteAddress) : 
                    base(endpointConfigurationName, remoteAddress) {
            }
     
            public PULSE3_EAI_id04_WSPortTypeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                    base(endpointConfigurationName, remoteAddress) {
            }
     
            public PULSE3_EAI_id04_WSPortTypeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                    base(binding, remoteAddress) {
            }
     
            [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
            WpfApplication4.sr.PULSE3_EAI_id04_WSResponse WpfApplication4.sr.PULSE3_EAI_id04_WSPortType.PULSE3_EAI_id04_WS(WpfApplication4.sr.PULSE3_EAI_id04_WSRequest request) {
                return base.Channel.PULSE3_EAI_id04_WS(request);
            }
     
            public WpfApplication4.sr.PULSE3_EAI_id04_WSOUT PULSE3_EAI_id04_WS(WpfApplication4.sr.PULSE3_EAI_id04_WSIN PULSE3_EAI_id04_WSIN) {
                WpfApplication4.sr.PULSE3_EAI_id04_WSRequest inValue = new WpfApplication4.sr.PULSE3_EAI_id04_WSRequest();
                inValue.PULSE3_EAI_id04_WSIN = PULSE3_EAI_id04_WSIN;
                WpfApplication4.sr.PULSE3_EAI_id04_WSResponse retVal = ((WpfApplication4.sr.PULSE3_EAI_id04_WSPortType)(this)).PULSE3_EAI_id04_WS(inValue);
                return retVal.PULSE3_EAI_id04_WSOUT;
            }
     
            [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
            System.Threading.Tasks.Task<WpfApplication4.sr.PULSE3_EAI_id04_WSResponse> WpfApplication4.sr.PULSE3_EAI_id04_WSPortType.PULSE3_EAI_id04_WSAsync(WpfApplication4.sr.PULSE3_EAI_id04_WSRequest request) {
                return base.Channel.PULSE3_EAI_id04_WSAsync(request);
            }
     
            public System.Threading.Tasks.Task<WpfApplication4.sr.PULSE3_EAI_id04_WSResponse> PULSE3_EAI_id04_WSAsync(WpfApplication4.sr.PULSE3_EAI_id04_WSIN PULSE3_EAI_id04_WSIN) {
                WpfApplication4.sr.PULSE3_EAI_id04_WSRequest inValue = new WpfApplication4.sr.PULSE3_EAI_id04_WSRequest();
                inValue.PULSE3_EAI_id04_WSIN = PULSE3_EAI_id04_WSIN;
                return ((WpfApplication4.sr.PULSE3_EAI_id04_WSPortType)(this)).PULSE3_EAI_id04_WSAsync(inValue);
            }
        }
    C'est long pour un 26 décembre j'en conviens, mais bon c'est calme aussi.

    Bonne fêtes de fin d'année à tous

Discussions similaires

  1. Authentification Web Service Java 6 - Header SOAP
    Par ameur1 dans le forum Services Web
    Réponses: 3
    Dernier message: 07/10/2011, 09h43
  2. Authentification Web Service Java 6 - Header SOAP
    Par ameur1 dans le forum Services Web
    Réponses: 0
    Dernier message: 06/10/2011, 17h10
  3. Déploiement web services SOAP sur Websphere 5.1
    Par g_rare dans le forum Websphere
    Réponses: 1
    Dernier message: 19/03/2007, 10h30
  4. web services, soap et compression.
    Par renaudjuif dans le forum Langage
    Réponses: 6
    Dernier message: 31/07/2006, 15h44
  5. [Web Service] [SOAP] Envoie requete
    Par _beber85 dans le forum JDBC
    Réponses: 1
    Dernier message: 08/06/2006, 09h31

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