e-commerce84
16-09-2010, 18:56
Ciao,
non sò se l'argomento riguardi proprio Java ma...un amico mi ha passato un web service per un progetto comune che ha scritto usando il framework Spring di Java e vorrei avere qualche informazione su come interrogare tale WS dal broswer.
Tanto per fare un po' di chiarezza, questo web service funziona più o meno così: effettua delle query su di una tabella che contiene una lista di POI (Points Of Interest: ogni poi ha una sua longitudine e latitudine). Fornisce all'esterno due metodi, allPois() che ritorna tutti i record contenuti nella tabella all'utente senza nessuna discriminazione; ed un altro metodo chiamato getRangePoi che prende 3 parametri in input (una latitudine, una longitudine ed un range) e che effettuando una query complessa deve restituire all'utente tutti i poi presenti in un certo range dalla posizione specificata.
Vi spiego meglio, se nel broswer digito:
http://localhost:8080/InsertPoi/services/PoiServiceWS?wsdl
mi compare il WSDL che tra le tante cose mi dice quali metodi sono invocabili sul mio web service ed infatti mi compaiono queste righe nell'XML ricevuto che dovrebbero far rferimento ai 2 metodi che posso invocare sul mio web service:
1) Parte del WSDL relativo al metodo allPois:
<element name="allPois">
<complexType/>
</element>
<element name="allPoisResponse">
<complexType>
<sequence>
<element name="allPoisReturn" type="impl:ArrayOf_xsd_anyType"/>
</sequence>
</complexType>
</element>
2) Parte del WSDL che fà riferimento al metodo getRangePoi:
<element name="getRangePoi">
<complexType>
<sequence>
<element name="lon" type="xsd:string"/>
<element name="lat" type="xsd:string"/>
<element name="range" type="xsd:string"/>
</sequence>
</complexType>
</element>
−
<element name="getRangePoiResponse">
<complexType>
<sequence>
<element name="getRangePoiReturn" type="impl:ArrayOf_xsd_anyType"/>
</sequence>
</complexType>
</element>
Se nel broswer faccio una richiesta al primo dei due metodi che non ha parametri non ho problemi e mi compare un file XML contenente tutti i vari POI presenti nel mio DB, la richiesta la faccio semplicemente così:
http://localhost:8080/InsertPoi/services/PoiServiceWS?method=allPois
Ora il problema è che non ho la minima idea di come provare a vedere il risultato del metodo getRangePoi perchè questo metodo ha bisogno di 3 parametri: una latitudine, una longitudine ed un range.
La signature di tale metodo è la seguente:
public List<HashMap>getRangePoi(String lon,String lat,String range)
Come potete vedere i parametri che riceve sono String (credo ci sia un motivo relativo al client per questa scelta)
Sapete dirmi cosa devo mettere nella barra degli indirizzi del broswer per invocare tale metodo con i 3 parametri e vedere un output nel broswert?
Grazie mille
non sò se l'argomento riguardi proprio Java ma...un amico mi ha passato un web service per un progetto comune che ha scritto usando il framework Spring di Java e vorrei avere qualche informazione su come interrogare tale WS dal broswer.
Tanto per fare un po' di chiarezza, questo web service funziona più o meno così: effettua delle query su di una tabella che contiene una lista di POI (Points Of Interest: ogni poi ha una sua longitudine e latitudine). Fornisce all'esterno due metodi, allPois() che ritorna tutti i record contenuti nella tabella all'utente senza nessuna discriminazione; ed un altro metodo chiamato getRangePoi che prende 3 parametri in input (una latitudine, una longitudine ed un range) e che effettuando una query complessa deve restituire all'utente tutti i poi presenti in un certo range dalla posizione specificata.
Vi spiego meglio, se nel broswer digito:
http://localhost:8080/InsertPoi/services/PoiServiceWS?wsdl
mi compare il WSDL che tra le tante cose mi dice quali metodi sono invocabili sul mio web service ed infatti mi compaiono queste righe nell'XML ricevuto che dovrebbero far rferimento ai 2 metodi che posso invocare sul mio web service:
1) Parte del WSDL relativo al metodo allPois:
<element name="allPois">
<complexType/>
</element>
<element name="allPoisResponse">
<complexType>
<sequence>
<element name="allPoisReturn" type="impl:ArrayOf_xsd_anyType"/>
</sequence>
</complexType>
</element>
2) Parte del WSDL che fà riferimento al metodo getRangePoi:
<element name="getRangePoi">
<complexType>
<sequence>
<element name="lon" type="xsd:string"/>
<element name="lat" type="xsd:string"/>
<element name="range" type="xsd:string"/>
</sequence>
</complexType>
</element>
−
<element name="getRangePoiResponse">
<complexType>
<sequence>
<element name="getRangePoiReturn" type="impl:ArrayOf_xsd_anyType"/>
</sequence>
</complexType>
</element>
Se nel broswer faccio una richiesta al primo dei due metodi che non ha parametri non ho problemi e mi compare un file XML contenente tutti i vari POI presenti nel mio DB, la richiesta la faccio semplicemente così:
http://localhost:8080/InsertPoi/services/PoiServiceWS?method=allPois
Ora il problema è che non ho la minima idea di come provare a vedere il risultato del metodo getRangePoi perchè questo metodo ha bisogno di 3 parametri: una latitudine, una longitudine ed un range.
La signature di tale metodo è la seguente:
public List<HashMap>getRangePoi(String lon,String lat,String range)
Come potete vedere i parametri che riceve sono String (credo ci sia un motivo relativo al client per questa scelta)
Sapete dirmi cosa devo mettere nella barra degli indirizzi del broswer per invocare tale metodo con i 3 parametri e vedere un output nel broswert?
Grazie mille