Bom dia pessoal,
Estou com um probleminha na assinatura da NFe, estou convertendo meu xml em string e depois tentando extrair os bytes dele, mas esta me retornando null, segue o código:
[code]private static String lerXML(String fileXML) throws IOException {
String linha = “”;
StringBuilder xml = new StringBuilder();
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(fileXML)));
while ((linha = in.readLine()) != null) {
xml.append(linha);
}
in.close();
return xml.toString();
} [/code]
private Document documentFactory(String xml) throws SAXException,
IOException, ParserConfigurationException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
Document document = factory.newDocumentBuilder().parse(
new ByteArrayInputStream(xml.getBytes()));
return document;
}
[code]public String assinaEnviNFe(String xml, String certificado, String senha)
throws Exception {
Document document = documentFactory(xml);
XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance(“DOM”);
ArrayList transformList = signatureFactory(signatureFactory);
loadCertificates(certificado, senha, signatureFactory);
for (int i = 0; i < document.getDocumentElement().getElementsByTagName(NFE).getLength(); i++) {
assinarNFe(signatureFactory, transformList, privateKey, keyInfo, document, i);
}
return outputXML(document);
}
[/code]
Ali no método assinaEnviNFe não entra no for por causa que me retorna null o Document, o que estou fazendo de errado???
Desde já agradeço.