Bonjour,
Je suis en train d'essayéde réaliser le portage d'une application Windows écrit en .Net qui consome et fournit des web-services vers Linux via Java. J'ai donc générer les classes du web service à partir du fichier WSDL de la version .NET via WSDL2Java. Tout c'est bien déroulé, le webservice marche... Mais j'ai un petit problème: on peu apparement customiser facilement les entêtes SOAP en .NET, je voudrais savoir comment customiser les entêtes SOAP en Java dans le code généré automatiquement?
Voici le code .net d'une Web Méthode:
Vous avez surement remarqué le "SoapHeader("eventList", Direction = SoapHeaderDirection.In)" voici la classe d'où provient "eventList" (je simplifie car ca serait beaucoup trop long autrement....):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /// <summary> /// Trigger d'évènement(s) /// </summary> [WebMethod(Description = "Trigger d'évènement(s)")] [SoapHeader("eventList", Direction = SoapHeaderDirection.In)] public virtual void SetEvents() { }
Voici la question SOAP qui contient l'header customiser correspondant au SoapHeader("eventList", Direction = SoapHeaderDirection.In) vu précédement:
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 /// <summary> /// Header SOAP d'accès à un paramètre du service web classe de base. /// Le Web service Plug expose une collection de paramètres. /// Le header SOAP PlugParam défini le mode d'accès au paramètre et son type. /// </summary> public class PlugParam : PlugField { /// <summary> /// Type d'accès au paramètre /// </summary> public enum Access { Read, Write, ReadWrite, CredentialRead, CredentialWrite, CredentialReadWrite } public string type; public Access access; public object value; public long time; public string sender; public string recipient; public long operation; public PlugCallBack[] callsBack;
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 <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Header> <PlugEventList xmlns="http://tempuri.org/"> <events> <PlugParam> <type>string</type> <access>Read or Write or ReadWrite or CredentialRead or CredentialWrite or CredentialReadWrite</access> <value /> <time>long</time> <sender>string</sender> <recipient>string</recipient> <operation>long</operation> <callsBack> <PlugCallBack xsi:nil="true" /> <PlugCallBack xsi:nil="true" /> </callsBack> </PlugParam> <PlugParam> <type>string</type> <access>Read or Write or ReadWrite or CredentialRead or CredentialWrite or CredentialReadWrite</access> <value /> <time>long</time> <sender>string</sender> <recipient>string</recipient> <operation>long</operation> <callsBack> <PlugCallBack xsi:nil="true" /> <PlugCallBack xsi:nil="true" /> </callsBack> </PlugParam> </events> </PlugEventList> </soap12:Header> <soap12:Body> <SetEvents xmlns="http://tempuri.org/" /> </soap12:Body> </soap12:Envelope>
Partager