Bonjour,
a partir d'un WSDL j'ai généré les classes java du client qui va appeler un Web Service.
La requete SOAP à envoyer doit contenir une entête SOAP (SecuritySoapHeader spécifique à ce Web Service.). Voila un exemple d'une requête SOAP:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlns
sd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<SecuritySoapHeader xmlns="EurotaxGlass's/WebServices/LDES">
<ClientCode>string</ClientCode>
<AccountName>string</AccountName>
<Password>string</Password>
<Success>boolean</Success>
<Denial>string</Denial>
</SecuritySoapHeader>
</soap:Header>
<soap:Body>
<ldesRequest xmlns="EurotaxGlass's/WebServices/LDES">
<ModelId>long</ModelId>
<RepairLines>long</RepairLines>
<Metallic>boolean</Metallic>
<RepairLabourRate>decimal</RepairLabourRate>
<PanelRepairRate>decimal</PanelRepairRate>
<RefinishRepairRate>decimal</RefinishRepairRate>
<VATRate>decimal</VATRate>
<RepairItem>
<RepairId>long</RepairId>
<Repairs>long</Repairs>
<ItemId>long</ItemId>
</RepairItem>
<RepairItem>
<RepairId>long</RepairId>
<Repairs>long</Repairs>
<ItemId>long</ItemId>
</RepairItem>
</ldesRequest>
</soap:Body>
</soap:Envelope>
Mon problème est que j'ai bien généré une classe SecuritySoapHeader mais j'arrvie pas à l'utiliser car la fonction qui appele le service dans le stub prend en argument juste une instance de la classe Body.
Si je fais l'appel le web service me rend une erreur indiquant que la SecuritysoapHeader est invalide.
Donc certainement je dois l'initialiser et l'ajouté à la requête SOAP.
J'ai essayé de la faire en utilisant :
SOAPHeaderElement header = new SOAPHeaderElement(...)
puis :
node = header.addChildElement("ClientCode1");
node.addTextNode("text");
// AccountName
node = header.addChildElement("AccountName");
node.addTextNode("text");
// Password
node = header.addChildElement("Password");
node.addTextNode("text");
// Success
node = header.addChildElement("Success");
node.addTextNode("text");
// Denial
node = header.addChildElement("Denial");
node.addTextNode("text");
et j'aoute ce heaser dans le stub mais j'ai une autre erreur :
WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
Pouvez vous SVP m'aider à trouver la solution.
Partager