//keyInfoElements.add(keyInfoFactory.newX509Data(Arrays.asList(certificates)));
keyInfoElements.add(keyInfoFactory.newX509Data(Collections.singletonList(certificates[0])));
KeyInfo keyInfo = keyInfoFactory.newKeyInfo(keyInfoElements);
XMLSignature signature = signFactory.newXMLSignature(signedInfo,keyInfo);
Element soapHeader = getFirstChildElement(document.getDocumentElement());
DOMSignContext signContext = new DOMSignContext(keyPair.getPrivate(),soapHeader);
signContext.putNamespacePrefix(XMLSignature.XMLNS,"ds");
signature.sign(signContext);