Ciao a tutti,
la cosa mi viene difficile anche da spiegare, comunque ci provo.
Ho creato un web service e vorrei che tale webservice accetti in input un XML come parametro del messaggio SOAP di invocazione del servizio. Mi spiego: ho un servizio che accetta in input un messaggio del genere:
Vorrei che MSGfosse a sua volta un XML.codice:<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://orderreceived.agents.po.project.ics/"> <soapenv:Header/> <soapenv:Body> <ord:esegui> <arg0>MSG</arg0> </ord:esegui> </soapenv:Body> </soapenv:Envelope>
La classe che ho realizzato finora è:
però se passo una comunissima stringa la variabile messaggio viene valorizzata con quella stringa, se invece MSG è un XML, come ad esempiocodice:@WebService(wsdlLocation = "WEB-INF/wsdl/OrderReceivedExecutorService.wsdl") public class OrderReceivedExecutor extends AgentExecutorBase { public OrderReceivedExecutor() { super(); } @WebMethod public String esegui(@WebParam(name = "arg0") String messaggio) throws Exception { if (!LoggerUtils.isInitialized()) LoggerUtils.initLogger(); LoggerUtils.logApp(getClass(), "Start: esegui"); String result = ""; result = super.esegui(messaggio, new OrderReceived()); return result; } }
la variabile messaggio non mi viene correttamente valorizzata (è una serie di spazi...).codice:<ImportazioneOrdini> <Partner>100001</Partner> <RigaOrdini> <IdMessaggio>2819894</IdMessaggio> <DataMessaggio>06072011</DataMessaggio> <CodiceDestinazione>935300</CodiceDestinazione> <Causale>00</Causale> <NumDDT>329442</NumDDT> <DataDDT>06072011</DataDDT> <Quantita>00000002.410</Quantita> <Offerta>0</Offerta> <CostoSupplier>000003.950</CostoSupplier> <UnitRetail>000000.000</UnitRetail> <Supplier>100001</Supplier> </RigaOrdini> <RigaOrdini> <IdMessaggio>2819894</IdMessaggio> <DataMessaggio>06072011</DataMessaggio> <CodiceDestinazione>935300</CodiceDestinazione> <Causale>00</Causale> <NumDDT>329442</NumDDT> <DataDDT>06072011</DataDDT> <Quantita>00000001.270</Quantita> <Offerta>0</Offerta> <CostoSupplier>000002.060</CostoSupplier> <UnitRetail>000000.000</UnitRetail> <Supplier>100001</Supplier> </RigaOrdini> ...
Che tipo di dato dovrei utilizzare per poter passare al webservice un XML in uno dei sui nodi? Non è corretto usare String? Googlando un po' ho visto che qualcuno suggerisce il formato base64binary, ma come viene usato? E' corretto? Non si trova molto altro...
Ciao e grazie a tutti
Alessio

Rispondi quotando