Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Richieste Soap a un web service con GWT

Dicembre 12th, 2009 by Giovanni Caputo

Ciao a tutti, in questi giorni, durante l’utilizzo di GWT, avevo la necessità di effettuare richieste SOAP a un semplice web service da me realizzato.

Per semplicità fornisco il codice di due metodi del web service da me realizzato.

Metodo CIAO:

/**
* Web service operation
*/
@WebMethod(operationName = “CIAO”)
public String CIAO() {
return “CIAO”;
}

Metodo  executeM5Primo

/**
* Web service operation
*/
@WebMethod(operationName = “executeM5Primo”)
public String executeM5Primo(@WebParam(name = “stringfile”)
String stringfile, @WebParam(name = “filetype”)
String filetype, @WebParam(name = “options”)
java.lang.String[] options) throws IOException, Exception {

String xml=””;
//altro codice….

return  xml;

}

Vediamo adesso come effettuare effettivamente la richiesta al web service tramite GWT:

request(){

String  url=”http://localhost:8080/WS_DataMining/DataMiningServices”;
RequestBuilder rb;

RequestBuilder rb= new RequestBuilder(RequestBuilder.POST, url);
rb.setHeader(“SOAPAction”, “\”\””);
rb.setHeader(“Content-Type”, “text/xml”);

/*dati di richiesta per un metodo con prototipo
String CIAO()
*
* <?xml version=”1.0″?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:SOAP-ENC=”http://schemas.xmlsoap.org/soap/encoding/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<SOAP-ENV:Body>
<jsx1:CIAO xmlns:jsx1=”http://dataMiningWS/”/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
*
*/

String data=“<?xml version=\”1.0\”?><SOAP-ENV:Envelope xmlns:SOAP-ENV=\”http://schemas.xmlsoap.org/soap/envelope/\” xmlns:SOAP-ENC=\”http://schemas.xmlsoap.org/soap/encoding/\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xmlns:xsd=\”http://www.w3.org/2001/XMLSchema\”> <SOAP-ENV:Body><jsx1:CIAO xmlns:jsx1=\”http://dataMiningWS/\”/></SOAP-ENV:Body></SOAP-ENV:Envelope>“;
try {

rb.sendRequest(data, new CiaoResultHandler());

} catch (RequestException ex) {

}

/*Dati richiesta per un metodo con protopipo
* String execute (String a , String b, String[] c)
*
* <?xml version=”1.0″?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:SOAP-ENC=”http://schemas.xmlsoap.org/soap/encoding/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<SOAP-ENV:Body><jsx1:executeM5Primo xmlns:jsx1=”http://dataMiningWS/”>
<stringfile>
@relation ‘cpu’

@attribute vendor { adviser, amdahl, apollo, basf, bti, burroughs, c.r.d, cdc, cambex, dec, dg, formation, four-phase, gould, hp, harris, honeywell, ibm, ipl, magnuson, microdata, nas, ncr, nixdorf, perkin-elmer, prime, siemens, sperry, sratus, wang}
@attribute MYCT real
@attribute MMIN real
@attribute MMAX real
@attribute CACH real
@attribute CHMIN real
@attribute CHMAX real
@attribute class real

@data
adviser,125,256,6000,256,16,128,199

</stringfile>
<filetype>arff</filetype>

</jsx1:executeM5Primo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

*/

String data=“<?xml version=\”1.0\”?>” +
“<SOAP-ENV:Envelope xmlns:SOAP-ENV=\”http://schemas.xmlsoap.org/soap/envelope/\” xmlns:SOAP-ENC=\”http://schemas.xmlsoap.org/soap/encoding/\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xmlns:xsd=\”http://www.w3.org/2001/XMLSchema\”>” +
“<SOAP-ENV:Body><jsx1:executeM5Primo xmlns:jsx1=\”http://dataMiningWS/\”>”
;
data+=“<stringfile>”+file+”</stringfile>”;
data+=”<filetype>”+tipoFile+”</filetype>”;
data+=”<options>”+opzioni+”</options>”;
data+=”</jsx1:executeM5Primo> </SOAP-ENV:Body>     </SOAP-ENV:Envelope>”;

try {
rb.sendRequest(data, new M5PrimoResultHandler());
} catch (RequestException ex) {
//Logger.getLogger(Request.class.getName()).log(Level.SEVERE, null, ex);
}

}

Questo post è stato postato sabato, Dicembre 12th, 2009 at 10:38 nella categoria Programmazione. Tags:, , , .
Puoi seguire tutti i commenti di questo articolo attraverso RSS 2.0 feed. Puoi lasciare un commento, o trackback dal nostro sito.

Lascia un commento

You must be loggati to post a comment.