Je n'arrive pas à trouver un moyen d'ajouter un en-tête personnalisé à une demande de savon du client du service Web sans utiliser SOAPHandler. Je cherche des alternatives et BindingProvider semble faire le travail pour moi. Mais ça n'a pas marché. Je ne suis pas sûr de ce qui me manque ici. Voici ce que je veux que ma demande ressemble:Comment ajouter l'en-tête personnalisé à la demande SOAP via jaxb SANS utiliser SoapHandler
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://xx.xx.xx/xxx/provisioning/ws">
<soapenv:Header>
<ws:XXXSecurity xmlns:ws="http://xx.xx.xx/xx/security/ws">
<ws:Identification type="TrustedApplicationIdentification">
<ws:ApplicationId>xx</ws:ApplicationId>
</ws:Identification>
</ws:xxSecurity>
<ws:xxLocale xmlns:ws="http://xx.xx.xx/xx/presentation/webservice/locale">
<ws:clientLocale>en_US</ws:clientLocale>
</ws:xxLocale>
</soapenv:Header>
<soapenv:Body>
<ws:GetAllNonProvisionedServers/>
</soapenv:Body>
</soapenv:Envelope>
ici le code:
Provisioning service = new Provisioning(url, qName);
ProvisioningPort servicePort = service.getProvisioningPort();
servicePort = service.getProvisioningPort();
Map<QName, List<String>> headersMap = new HashMap<QName, List<String>>();
String mySoapHeader = "<ws:Identification type=\"TrustedApplicationIdentification\">"
+ "<ws:ApplicationId>Password123$</ws:ApplicationId>"
+ "</ws:Identification>" ;//+ "</soapenv:Header>";
List<String> mySOAPHeaders = new ArrayList<String>();
mySOAPHeaders.add(mySoapHeader);
headersMap.put(qSecurityName, mySOAPHeaders);
System.out.println(MessageContext.HTTP_REQUEST_HEADERS);
BindingProvider bp = (BindingProvider) servicePort;
List<Server> findAllNonProvisionedServers = servicePort
.findAllNonProvisionedServers();
J'utilise wsimport pour créer toutes les classes jub stub et les utiliser pour faire l'appel de service Web. Je ne suis pas sûr de savoir comment mettre à jour les informations d'en-tête sur un objet Java. – yousafsajjad