Bonjour,
J'ai un petit souci, je ne sais pas si mon message à vraiment sa place ici mais je pense que vous pouvez peut-être m'aider.
En fait, depuis une application .NET, je dois faire appel à un service Java.
J'ai ajouté la référence de service, j'ai bien accès à tous les objects mais lors d'un appel au service avec un objet en entrée, je tombe sur une erreur 500.
En sniffant les trames qui passent, je me suis rendu compte qu'il y avait des différences avec le XML que j'ai reçu en exemple :
En effet, je dois envoyer ceci :
Et ce que mon service envoie est ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <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"> <SubscriberRetrieve xmlns="http://www.test.com"> <input xmlns="http://www.test.com"> <unmaskValueSelected xmlns="">true</unmaskValueSelected> <userIdName xmlns="">ESBUser</userIdName> </input> </SubscriberRetrieve> </s:Body> </s:Envelope>
Alors, la différence se situe dans l'élement input. Sur la première trame, il contient un namespace en attribut et sur la 2ème pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <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"> <SubscriberRetrieve xmlns="http://www.test.com"> <input> <unmaskValueSelected xmlns="">true</unmaskValueSelected> <userIdName xmlns="">ESBUser</userIdName> </input> </SubscriberRetrieve> </s:Body> </s:Envelope>
Y-a-t-il un moyen quelconque qui me permettrait de l'ajouter afin d'éviter de passer par de Vulgaires HttpWebRequests ?
J'ai essayé d'ajouter ceci :
Dans le fichier reference.cs au dessus de ma propriété Input mais sans succès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.testerse.com")]
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 /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.test.com")] public partial class SubscriberRetrieve : object, System.ComponentModel.INotifyPropertyChanged { private SubscriberRetrieveInputMessage inputField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Order=0, Namespace="http://www.comverse.com")] public SubscriberRetrieveInputMessage input { get { return this.inputField; } set { this.inputField = value; this.RaisePropertyChanged("input"); } } 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)); } } }
Quelqu'un aurait-il une idée ???
Merci d'avance
Partager