Errore durante l'invio di un messaggio tramite WS - Err: NULL

Ciao,

Quando invio una fattura a SdI non riesce al passaggio “Invio fattura a Pubblica Amministrazione” con il seguente messaggio:

Errore durante l'invio di un messaggio tramite WS - Err: NULL

Questa è la risposta che il mio servizio web restituisce:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <rispostaRiceviFatture xmlns="http://www.fatturapa.gov.it/sdi/ws/ricezione/v1.0/types">
            <Esito>ER01</Esito>
        </rispostaRiceviFatture>
    </soap:Body>
</soap:Envelope>

Qualcuno sa qual è il problema?

Grazie mille!
Igor

1 Mi Piace

@Igor_Martire hai provato a chiedere qui? https://slack.developers.italia.it/

Deve essere così:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><rispostaRiceviFatture xmlns="http://www.fatturapa.gov.it/sdi/ws/ricezione/v1.0/types"><Esito>ER01</Esito></rispostaRiceviFatture></soap:Body></soap:Envelope>

Ciao, Claudio,

Non vedo molta differenza da quella risposta alla mia, ci sono solo alcuni spazi dei nomi inutilizzati di più. C’è qualcosa che mi manca?

Potresti fornirmi il tuo endpoint di ricezione in modo che possa inviare una richiesta per analizzare le intestazioni e il formato della risposta? Credo che questo mi mostrerà quello che mi manca.

Grazie molto!

Ciao, Roberto,

Non sapevo di questa chiacchierata fiacca. Ho appena inviato un messaggio lì. Grazie!

Ciao,
allora…il metodo riceviFatture deve essere una Function la cui Return è la response ER01…controlla che l’encoding del messaggio sia in formato MTOM.
io ho scritto tutti in VisualBasic .NET e penso di non esserti troppo di Aiuto!..

Ho usato MTOM e ora l’errore è

javax.xml.stream.XMLStreamException: The root element is required in a well-formed document.

Ecco la risposta che invio a SdI.

HTTP/1.1 200 OK
Content-Type: multipart/related; boundary="MIMEBoundary_b41023ed985a7d8e3cb6446f70fdf7b0e1071076606976ed"; type="application/xop+xml"; start="<0.a41023ed985a7d8e3cb6446f70fdf7b0e1071076606976ed@apache.org>"; start-info="text/xml"
Content-Length: 628
Date: Mon, 29 Oct 2018 18:49:49 GMT

--MIMEBoundary_b41023ed985a7d8e3cb6446f70fdf7b0e1071076606976ed
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <0.a41023ed985a7d8e3cb6446f70fdf7b0e1071076606976ed@apache.org>

<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><ns1:rispostaRiceviFatture xmlns:ns1="http://www.fatturapa.gov.it/sdi/ws/ricezione/v1.0/types"><Esito>ER01</Esito></ns1:rispostaRiceviFatture></soapenv:Body></soapenv:Envelope>
--MIMEBoundary_b41023ed985a7d8e3cb6446f70fdf7b0e1071076606976ed--

Qualsiasi aiuto?

Hai risolto alla fine? Come? Grazie

1 Mi Piace

for me the solution was:

Content-Type: text/xml; charset="utf-8"

Response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.fatturapa.gov.it/sdi/ws/ricezione/v1.0/types"> <soap:Body> <ns1:rispostaRiceviFatture> <Esito>ER01</Esito> </ns1:rispostaRiceviFatture> </soap:Body> </soap:Envelope>

Ciao, sto sviluppando adesso un’integrazione per invio e ricezione ma ogni volta che provo a ricevere fatture tramite il simulatore riesco ad essere contattato e a dare risposta al sistema ma la fattura che ricevo è sempre vuota, questo è il codice che uso, il progetto è stato sviluppato in .Net 4.8 :

[WebService(Namespace = "http://www.fatturapa.it/RicezioneFatture")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]

public class RicezioneFatture : System.Web.Services.WebService
{
	const string _FILE_SDI_PATH = ("/FileSDI/Fatture/");

	//private readonly ILogger _log = Log.ForContext(typeof(RicezioneFatture));

	[WebMethod]
	[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.fatturapa.it/RicezioneFatture/RiceviFattureSdI",
		Use = System.Web.Services.Description.SoapBindingUse.Literal,
		ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]
	[return: XmlElement("RispostaRiceviFatture",
		Namespace = "http://www.fatturapa.gov.it/sdi/ws/ricezione/v1.0/types")]
	public rispostaRiceviFatture_Type RiceviFatture([XmlElement(Namespace = "http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types")] fileSdIConMetadati_Type fileSdIConMetadatiType)
	{
		string path;
		string fileContent;

		Logger.LogInfo("called");

		if (fileSdIConMetadatiType != null)
		{
			try
			{
				Logger.LogInfo(fileSdIConMetadatiType.NomeFile);
				path = HttpContext.Current.Request.MapPath(_FILE_SDI_PATH + "Fatture/");
				Logger.LogInfo(path);

				fileContent = Converter.ByteArrayToXml(fileSdIConMetadatiType.File);
				System.IO.File.WriteAllText(path + fileSdIConMetadatiType.NomeFile, fileContent);

				FileSdi row = new FileSdi()
				{
					IdentificativoSdI = fileSdIConMetadatiType.IdentificativoSdI,
					NomeFile = fileSdIConMetadatiType.NomeFile,
					NomeFileMetadati = fileSdIConMetadatiType.NomeFileMetadati,
					NomeFileMetadatiPath = fileSdIConMetadatiType.NomeFileMetadati,
					Operazione = "RiceviFatture"
				};

				_ = FileSdiRepository.Add(row);
			}
			catch (Exception e)
			{
				Logger.LogError(e.Message);
				Logger.LogError(e.Source);
				throw e;
			}

		}
		else
		{
			Logger.LogInfo("null file");
		}


		rispostaRiceviFatture_Type result = new rispostaRiceviFatture_Type();
		result.Esito = 0;

		return result;
	}

}

Grazie a tutti in anticipo

Che funzione è Converter.ByteArrayToXml()?
Hai provato a scrivere i dati direttamente nel file senza nessuna conversione?

System.IO.File.WriteAllBytes(path + fileSdIConMetadatiType.NomeFile, fileSdIConMetadatiType.File);