Salve,
abbiamo eseguito la procedura per l’accreditamento del canale e ottenuto l’archivio contenente i certificati per avviare i test di interoperabilità.
Riusciamo correttamente a richiamare tramite Soap UI il web service per l’invio delle fatture all’indirizzo
https://testservizi.fatturapa.it/ricevi_file
per l’autenticazione abbiamo creato un keystore contenente:
CAEntratetest.cer
SistemaInterscambioFatturaPATest.cer
testservizi.fatturapa.it.cer
SDI-xxxxxxxxx.cer (certificato client)
Abbiamo quindi generato il codice Java Axis 2 da Soap UI.
La chiamata in Java però fallisce con questo errore
org.apache.axis2.AxisFault: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
Il codice è questo:
it.gov.fatturapa.www.sdi.ws.trasmissione.v1_0.SdIRiceviFile_serviceStub stub = new it.gov.fatturapa.www.sdi.ws.trasmissione.v1_0.SdIRiceviFile_serviceStub(“https://testservizi.fatturapa.it/ricevi_file”);
it.gov.fatturapa.www.sdi.ws.trasmissione.v1_0.types.FileSdIAccoglienza fileSdIAccoglienza = new it.gov.fatturapa.www.sdi.ws.trasmissione.v1_0.types.FileSdIAccoglienza();
FileSdIBase_Type file = new FileSdIBase_Type();
NomeFile_Type nome = new NomeFile_Type();
String xml =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
"<soapenv:Header/>\n" +
"<soapenv:Body xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
"<fileSdIAccoglienza xmlns=\"http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types\">\n" +
"<NomeFile xmlns=\"\">IT01234567890_FPA02.xml</NomeFile>\n" +
"<File xmlns=\"\"></File>\n" +
"</fileSdIAccoglienza>\n" +
"</soapenv:Body>\n" +
"</soapenv:Envelope>";
DataSource ds = new ByteArrayDataSource(xml, "text/plain; charset=UTF-8");
nome.setNomeFile_Type("ITxxxxxxxx.xml");
file.setNomeFile(nome);
file.setFile(new DataHandler(ds));
fileSdIAccoglienza.setFileSdIAccoglienza(file);
stub.riceviFile(fileSdIAccoglienza);
abbiamo settato il keystore con
System.setProperty(“javax.net.ssl.trustStore”,“client.jks”);
System.setProperty(“javax.net.ssl.trustStorePassword”, “password”);
Non riusciamo a capire a cosa sia dovuto il problema. Ci chiedevamo se qualcuno di voi avesse già effettuato l’implementazione in Java e ci potesse dare qualche suggerimento.
Grazie in anticipo