Boa tarde
Amigos, estou tentando mandar uma nfe usando código abaixo:
Aparentemente meus certificados estão instalados pois mando tb sped reinf onde gera e assina xml e não da erro.
Erro: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Agradeço desde de já.
KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream("/discos/teste.pfx"), "99999".toCharArray());
SSLContextBuilder sslContextBuilder = new SSLContextBuilder();
sslContextBuilder.loadKeyMaterial(clientStore, "99999".toCharArray());
sslContextBuilder.loadTrustMaterial(new TrustSelfSignedStrategy());
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
sslContextBuilder.build());
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory)
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(
httpClient);
requestFactory.setConnectTimeout(10000); // 10 seconds
requestFactory.setReadTimeout(10000); // 10 seconds
RestTemplate restTemplate = new RestTemplate(requestFactory);
XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document document = dbf.newDocumentBuilder().parse(new FileInputStream("/nfe/" + "A-9999.xml"));
String arquivoXML = converter(document);
Envelopar envelopar = new Envelopar();
String arquivoXML2 = envelopar.EnveloparXML();
String resourceUrl = "https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx";
//String resourceUrl = "https://reinf.receita.economia.gov.br/recepcao/lotes";
String retornoEnvio = "";
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/xml; charset=utf-8");
try {
HttpEntity<String> entity = new HttpEntity<String>(arquivoXML2, headers);
ResponseEntity<String> response = restTemplate.exchange(resourceUrl, HttpMethod.POST, entity,String.class);
retornoEnvio = response.getBody();
retornoJson = XML.toJSONObject(retornoEnvio);
if (response.getStatusCode() == HttpStatus.OK) {
System.out.println("Request Successful.");
} else if (response.getStatusCode() == HttpStatus.CREATED) {
System.out.println(response.getStatusCode() == HttpStatus.CREATED) ;
} else {
System.out.println("Request Failed");
}
} catch (Exception e) {
// TODO: handle exception
retornoEnvio = e.getMessage();
System.out.println(e.getMessage());
}
return retornoMensagem.toString();
}