Bonjour,
J'aurais des petites questions relative au deploiement d'un service SOAP avec l'api APACHE SOAP.
En suivant toute la doc www.soapuser.com, j'ai appris a deployer mon propre service celui est fonctionnel, pour le tester j'ai ecrit un client java pour appeler mes differentes methodes qui etait disponible. Chaque methode me renvoit un objet bien particulier.
voici mon fichier de deploiement
on se rend compte que pour la gestion des types (objet renvoyes, ici BeanCode,BeanWinnings,...), est mis comme un type java, et que celui sera mis dans un BeanSerialiser.
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 <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" id="urn:NestleFetcher"> <isd:provider type="java" scope="Application" methods="activateCode getInfosCode playingIG sendSMS"> <isd:java class="com.phonevalley.nestle.web.soap.ServeurSoap" static="false"/> </isd:provider> <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener> <isd:mappings> <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="urn:xml-soap-nestle" qname="x:code" javaType="com.phonevalley.nestle.web.soap.bean.BeanCode" java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer" xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/> <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="urn:xml-soap-nestle" qname="x:winnings" javaType="com.phonevalley.nestle.web.soap.bean.BeanWinnings" java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer" xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/> <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="urn:xml-soap-nestle" qname="x:message" javaType="com.phonevalley.nestle.web.soap.bean.BeanMessage" java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer" xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/> <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="urn:xml-soap-nestle" qname="x:texto" javaType="com.phonevalley.nestle.web.soap.bean.BeanTexto" java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer" xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/> </isd:mappings> </isd:service>
Lorsque l'on developpe un client java on utilise les Classes BeanCode (ou BeanWinnings,...) et on realise un mapping sur le flux xml et on le transforme en objet grace a cette manipulation:
Extrait du CODE CLIENT
Je voulais savoir comment on faisait ce mapping dans un autre langage si le client etait developpe en C#, en perl.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SOAPMappingRegistry smr = new SOAPMappingRegistry(); BeanSerializer beanSer = new BeanSerializer(); // Map the types. smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("urn:xml-soap-nestle", "code"), BeanCode.class, beanSer, beanSer); smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("urn:xml-soap-nestle", "winnings"), BeanWinnings.class, beanSer, beanSer);
En fait ma question est que j'ai compris que l'on devait forcement utiliser dans le client un jar contenant la description de nos objets renvoyes, existe il une methode pour generer automatiquement ces classes dans un otre langage que le java (exemple un fichier WSDL????).....????
J'espere que j'ai été suffisament claire merci....
Partager