Bonjour,
Je viens une nouvelle fois vers vous car je dois mettre en place un petit webService en java qui serait consommé par un client php via le protocol Soap.
J'ai donc développé le webService en java, déplaoyé sur mon jboss et l'ai testé en utilisant un client en java et ça à l'air de marché. Pour ça j'ai suivi le tuto suivant: http://jl2tho.blogspot.com/2007/05/t...jbosss-42.html.
Voici mon fichier wsdl (désolé pour la lisibilité):
Mais par contre je galère pour utiliser ce service web via un client php. J'arrive apparemment à créer un client Soap sur mon wsdl mais lorsque je veux utiliser une des deux méthodes (substract ou ajouter) rien ne se passe, ni erreur ni solution. Je peux même mettre n'importe quel nom de méthode dans mon call je n'ai rien qui se passe. Pour info, comme je suis en php 5 via EasyPhp, je n'utilise pas nuSoap mais Soap en natif. Voici mon code php:
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 - <definitions name="MaSwCalculette" targetNamespace="http://ejb.calculette.j2ltho.fr/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ejb.calculette.j2ltho.fr/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <types> - <xs:schema targetNamespace="http://ejb.calculette.j2ltho.fr/" version="1.0" xmlns:tns="http://ejb.calculette.j2ltho.fr/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="ajouter" type="tns:ajouter" /> <xs:element name="ajouterResponse" type="tns:ajouterResponse" /> <xs:element name="subtract" type="tns:subtract" /> <xs:element name="subtractResponse" type="tns:subtractResponse" /> - <xs:complexType name="ajouter"> - <xs:sequence> <xs:element name="arg0" type="xs:int" /> <xs:element name="arg1" type="xs:int" /> </xs:sequence> </xs:complexType> - <xs:complexType name="ajouterResponse"> - <xs:sequence> <xs:element name="resultat" type="xs:int" /> </xs:sequence> </xs:complexType> - <xs:complexType name="subtract"> - <xs:sequence> <xs:element name="x" type="xs:int" /> <xs:element name="y" type="xs:int" /> </xs:sequence> </xs:complexType> - <xs:complexType name="subtractResponse"> - <xs:sequence> <xs:element name="return" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:schema> </types> - <message name="MaCalculetteSw_ajouterResponse"> <part element="tns:ajouterResponse" name="ajouterResponse" /> </message> - <message name="MaCalculetteSw_subtract"> <part element="tns:subtract" name="subtract" /> </message> - <message name="MaCalculetteSw_subtractResponse"> <part element="tns:subtractResponse" name="subtractResponse" /> </message> - <message name="MaCalculetteSw_ajouter"> <part element="tns:ajouter" name="ajouter" /> </message> - <portType name="MaCalculetteSw"> - <operation name="ajouter" parameterOrder="ajouter"> <input message="tns:MaCalculetteSw_ajouter" /> <output message="tns:MaCalculetteSw_ajouterResponse" /> </operation> - <operation name="subtract" parameterOrder="subtract"> <input message="tns:MaCalculetteSw_subtract" /> <output message="tns:MaCalculetteSw_subtractResponse" /> </operation> </portType> - <binding name="MaCalculetteSwBinding" type="tns:MaCalculetteSw"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="ajouter"> <soap:operation soapAction="" /> - <input> <soap:body use="literal" /> </input> - <output> <soap:body use="literal" /> </output> </operation> - <operation name="subtract"> <soap:operation soapAction="" /> - <input> <soap:body use="literal" /> </input> - <output> <soap:body use="literal" /> </output> </operation> </binding> - <service name="MaSwCalculette"> - <port binding="tns:MaCalculetteSwBinding" name="MaCalculetteBeanPort"> <soap:address location="http://SIGMA:8080/MaCalculetteBeanService/MaCalculetteBean" /> </port> </service> </definitions>
Si quelqu'un pouvait me donner quelques billes, je serais bien content
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 <?php $client = new SoapClient(NULL, array( "location" => "http://SIGMA:8080/MaCalculetteBeanService/MaCalculetteBean", "uri" => "urn:xmethods-delayed-MaSwCalculette", "style" => SOAP_DOCUMENT, "use" => SOAP_LITERAL )); $inner[] =& new SOAPVar('arg0','int',3); $inner[] =& new SOAPVar('arg1','int',2); echo "substract".$client->soapcall('ajouter', new SOAPVar('MaSwCalculette','{urn:MaSwCalculette}MaSwCalculette',$inner)); ?>
D'avance merci
Partager