Bonjour,
j'ai crée un petit WebService POJO dont voici le code :
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 package com.test.ws; public class WSTest { public final static String VERSION = "WebService Test - version 0.1"; public String getUserID(String login) { return "ID for user " + login + " : not implemented"; } public String getVersion() { return VERSION; } }
Je l'ai correctement déployé dans Axis2 et je sais executer mes 2 méthodes avec :
http://localhost/axis2/services/WSTest/getVersion
http://localhost/axis2/services/WSTe...D?login=michel
qui me renvoient bien les réponses voulues (en SOAP bien sur).
J'ai ensuite crée un client de test :
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 package com.test.ws; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; import org.apache.axis2.context.MessageContext; import org.apache.axis2.description.AxisMessage; public class TestVersion { private static EndpointReference targetEPR = new EndpointReference("http://localhost/axis2/services/WSTest"); public static void main(String[] args) { try { Options options = new Options(); options.setTo(targetEPR); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setAction("urn:getUserID"); ServiceClient sender = new ServiceClient(); sender.setOptions(options); OMElement getUserID = getUserID("michel"); OMElement result = sender.sendReceive(getUserID); String response = result.getFirstElement().getText(); System.out.println("getUserID : " + response); } catch (AxisFault exc) { exc.printStackTrace(System.err); } } public static OMElement getVersion() { OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace("http://axiom.service.quickstart.samples/xsd", "tns"); OMElement method = fac.createOMElement("getVersion", omNs); return method; } public static OMElement getUserID(String login) { OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace("http://axiom.service.quickstart.samples/xsd", "tns"); OMElement method = fac.createOMElement("getUserID", omNs); OMElement value = fac.createOMElement("login", omNs); value.addChild(fac.createOMText(value, login)); method.addChild(value); return method; } }
Quand j'appelle la méthode getVersion, tout va bien, je recois bien en retour "WebService Test - version 0.1".
Par contre, quand je veux appeller getUserID via la méthode sender.sendReceive, je reçois une exception dont le message est :
Et le getDetail sur l'exception (qui est du type AxisFault) me renvoie null donc je n'en sais pas plus que ça !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method getUserID at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:434) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:373) at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294) at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520) at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:500) at com.test.ws.TestVersion.main(TestVersion.java:34)
Quelqu'un a déjà eu le même problème ou alors voit ce que ça peut bien être, car de mon côté je suis bien bloqué... Et il va de soi que j'ai fait moultes recherche avant de poster ici !
Partager