Bonjour,

Appel d'un WS en Java à partir d'une autre appli. En mode debug j'accède bel et bien à l'implémentation du service ciblé MAIS... mes paramètres sont tous NULL.
Du coup pourriez vous m'indiquer dans le code suivant ce qui pose problème svp ? J'ai beau chercher, rien n'y fait !

Interface WS :
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
@WebService(
        portName = "MonPort",
        serviceName = "MonService",
        targetNamespace = "http://monsite.com/wsdl",
        endpointInterface = "monEndPointInterace")
@SOAPBinding(style=Style.RPC)
public interface MonWs {
 
	@WebMethod(operationName="blablaMethode")
	public int blablaMethode(@WebParam(name="codeA") String acti,
			@WebParam(name="codeD") String dep,
			@WebParam(name="annee") Short an,
			@WebParam(name="numOP") Long numOp,
			@WebParam(name="nom") String nom);
}

Implementation WS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@WebService(
        portName = "MonPort",
        serviceName = "MonService",
        targetNamespace = "http://monsite.com/wsdl",
        endpointInterface = "monEndPointInterace")
public class MonWsImpl implements MonWs {
 
	@EJB
	MonMetierService metierService;
 
	public int blablaMethode(String acti, String dep, Short an,
			Long numOp, String nom) {
		// Appel du service Metier
	}
Appel à partir d'une autre application
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
 
public void machinTruc(String codeA, String codeD, Short annee, Long numOp) {
try {
			// Récupération des noms de service et de port
			QName serviceQN = new QName("http://monsite.com/wsdl", "MonService");
			QName portQN = new QName("http://monsite.com/wsdl", "MonPort");
 
			// Création du service
			Service service = Service.create(serviceQN);
			service.addPort(portQN, SOAPBinding.SOAP11HTTP_BINDING,  "http://localhost:8080/MonAppliCible/MonService");
 
			// Création d'une instance Dispatch
			Dispatch<SOAPMessage> dispatch = service.createDispatch(portQN, SOAPMessage.class, Service.Mode.MESSAGE);
 
			// Composition du message de demande
			MessageFactory mf;
				mf = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
 
			// Créer un message.  Cet exemple fonctionne avec l'élément SOAPPART.
			SOAPMessage request = mf.createMessage();
			SOAPPart part = request.getSOAPPart();
 
			// Obtenir l'élément SOAPEnvelope ainsi que l'en-tête et les éléments de corps.
			SOAPEnvelope env = part.getEnvelope();
			SOAPBody body = env.getBody();
 
			// Construire la charge de message.
			SOAPElement operation = body.addChildElement("blablaMethode", null, "http://monsite.com/wsdl");
			SOAPElement valActivite = operation.addChildElement("codeA");
			valActivite.addTextNode(codeA);
			SOAPElement valDepot = operation.addChildElement("codeD");
			valDepot.addTextNode(codeD);
			SOAPElement valAnnee = operation.addChildElement("annee");
			valAnnee.addTextNode(String.valueOf(annee));
			SOAPElement valOdp = operation.addChildElement("numOp");
			valOdp.addTextNode(String.valueOf(numOp));
			request.saveChanges();
 
			// Appel du WS avec les paramètres
			SOAPMessage response = dispatch.invoke(request);
} catch (SOAPException e) {
     // Gestion exception		
}
}