Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-09-2010, 18:56   #1
e-commerce84
Senior Member
 
Iscritto dal: Feb 2009
Messaggi: 700
[Java] Come fare una richiesta ad un web service dal broswer ?!?! help me :-(

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/serv...ServiceWS?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:

Codice:
<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:

Codice:
<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/serv...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:

Codice:
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
e-commerce84 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2010, 19:53   #2
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Hai per forza necessità di usare il browser?
Altrimenti potresti usare SoapUI

In ogni caso dipende dalla configurazione del webservice, i dati possono essere passati anche in Post o Get esattamente come i parametri di una pagina web tramite
Codice:
?nome1=valore1&nome2=valore2
invece della richiesta Soap.
Ma ovviamente dipende se il webservice è configurato per accettare tale convenzione di chiamata
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2010, 20:13   #3
e-commerce84
Senior Member
 
Iscritto dal: Feb 2009
Messaggi: 700
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Hai per forza necessità di usare il browser?
Altrimenti potresti usare SoapUI

In ogni caso dipende dalla configurazione del webservice, i dati possono essere passati anche in Post o Get esattamente come i parametri di una pagina web tramite
Codice:
?nome1=valore1&nome2=valore2
invece della richiesta Soap.
Ma ovviamente dipende se il webservice è configurato per accettare tale convenzione di chiamata
mmm che cos'è SoapUI?

Allora ho provato a fare come dici tu (sempre che io abbia capito bene cosa intendi) mettendo nella barra degli indirizzi del broswer la seguente richiesa:

http://localhost:8080/InsertPoi/serv...e2=12&nome3=10

Ma nel broswer appare il seguente messaggio di errore (il WS è sicuro che funziona perchè il mio collega lo ha testato, non dal broswer...credo con un ambiente di sviluppo tipo Eclipse chiamato Idea che offre un'apposito tool)

Codice:
<soapenv:Envelope>

	<soapenv:Body>

	<soapenv:Fault>
		<faultcode>soapenv:Server.userException</faultcode>

	<faultstring>
		org.xml.sax.SAXParseException: Element type "getRangePoi" must be followed by either attribute specifications, ">" or "/>".
	</faultstring>

	<detail>
		<ns1:hostname>andrea-laptop</ns1:hostname>
	</detail>
	
	</soapenv:Fault>

	</soapenv:Body>
	
</soapenv:Envelope>
Che significa? cosa sbaglio? Passo male i parametri perchè devono essere stringhe?
Non è che riesci a darmi la richiesta completa che dovrei passare nella barra degli indirizzi per richiamarlo correttamente?

Cosa intendi che posso passarlo con get o post? mi potresti fare un esempio anche di quello eventualmente?

Grazie mille e perdona l'ignoranza ma è la prima volta che metto le mani su queste cose e non ci hanno spiegato un cavolo !!!
e-commerce84 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2010, 20:57   #4
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Ti consiglio anche io di usare soapUI, una comoda interfaccia grafica con cui puoi interagire con i web-services.
http://www.soapui.org/

Basta che importi il WSDL e ti ritrovi con gran parte del lavoro fatta in automatico. Inoltre ha dei comodi tool che generano automaticamente il codice per interfacciare la tua applicazione con il web-service
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2010, 22:30   #5
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da e-commerce84 Guarda i messaggi
mmm che cos'è SoapUI?
google potrebbe rispondere alla domanda meglio di me.
Comunque è un tool appositamente studiato per richiamare i webservice.

Quote:
Che significa? cosa sbaglio? Passo male i parametri perchè devono essere stringhe?
Non è che riesci a darmi la richiesta completa che dovrei passare nella barra degli indirizzi per richiamarlo correttamente?
Il mio era un esempio. Ovviamente dovrai usare nomi e valori opportuni.

Quote:
Cosa intendi che posso passarlo con get o post? mi potresti fare un esempio anche di quello eventualmente?
post e get sono identici solo che da browser se non crei una pagina web difficilmente riesci a passare i parametri in post.
Ma ti hanno mai parlato dell'HTTP?

In ogni caso ripeto non è detto che tu possa richiamarlo da browser, perchè formalmente è necessaria una richiesta soap. Poi se il webservice è configurato in maniera apposita può accettare anche richieste in post o get.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2010, 22:50   #6
e-commerce84
Senior Member
 
Iscritto dal: Feb 2009
Messaggi: 700
Quote:
Originariamente inviato da tomminno Guarda i messaggi
google potrebbe rispondere alla domanda meglio di me.
Comunque è un tool appositamente studiato per richiamare i webservice.



Il mio era un esempio. Ovviamente dovrai usare nomi e valori opportuni.



post e get sono identici solo che da browser se non crei una pagina web difficilmente riesci a passare i parametri in post.
Ma ti hanno mai parlato dell'HTTP?

In ogni caso ripeto non è detto che tu possa richiamarlo da browser, perchè formalmente è necessaria una richiesta soap. Poi se il webservice è configurato in maniera apposita può accettare anche richieste in post o get.
Si scusa ero un tantinello distratto dalla giornataccia di oggi, sò cosa sono GET e POST, non avevo collegato...

Il WS è SOAP, infatti come ti avevo detto se passo la richiesta all'altro metodo che non accetta prametri funziona e mi restituisce nel broswer l'XML contenente la lista di tutti i POI.

Ho provato a fare come mi hai detto te (almeno questa volta credo di aver capito bene) usando nell'indirizzo i nomi dei parametri che usa effettivamente il mio metodo ma continua a darmi errore.

Ti faccio vedere per chiarezza:

Io nella barra degli indirizzi del broswer ho messo questo indirizzo:

Codice:
http://localhost:8080/InsertPoi/services/PoiServiceWS?method=getRangePoi?lon=12&lat=48&range=100
usando come nomi lon, lat e range che sono i nomi dei parametri del metodo getRangePoi che stà invocando sul web service....già che ci siamo...eccoti il codice di tale metodo:

Codice:
public List<HashMap>getRangePoi(String lon,String lat,String range)
    {
        System.out.println("Attenzione "+lon+" lat "+lat+" range "+range);
      return poiDao.getRangePoi(Float.parseFloat(lon), Float.parseFloat(lat), Integer.parseInt(range));
    }
Vedi i nomi...sono quelli...

Se metto quell'indirizzo mi dà il seguente errore nel broswer:

Codice:
<soapenv:Envelope>

	<soapenv:Body>
		<soapenv:Fault>
			<faultcode>soapenv:Server.userException</faultcode>
			<faultstring>
				org.xml.sax.SAXParseException: Element type "getRangePoi" must be followed by either attribute specifications, ">" or "/>".
			</faultstring>

			<detail>
				<ns1:hostname>andrea-laptop</ns1:hostname>
			</detail>
		</soapenv:Fault>
	</soapenv:Body>
		
</soapenv:Envelope>
e sinceramente non capisco proprio l'errore dove possa essere nella mia immissione dei dati...

ripeto...il WS è SOAP infatti se dal brosewer accedo all'altro metodo facendo: http://localhost:8080/InsertPoi/serv...method=allPois mi tira fuori il corretto XML...

Grazie mille
e-commerce84 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2010, 22:59   #7
e-commerce84
Senior Member
 
Iscritto dal: Feb 2009
Messaggi: 700
sbagliavo perchè non avevo messo il & davanti al primo parametro ma avevo capito che davanti al primo ci volesse il ? e che i successivi & non erano risoluzioni di variabili ma degli AND logici...oddio ora mi sento idiota !!
e-commerce84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Costruire una VGA in casa senza un chip ...
Renault ha rifiutato due volte BYD: l'az...
Appena 9.000 imprese innovative in 25 an...
Anthropic (di nuovo) sotto accusa: chies...
HP OMEN MAX 16 con RTX 5080 e Core Ultra...
Tilly Norwood arriva al cinema: via all'...
5G slicing per le comunicazioni di emerg...
BYD SHARK, 436 CV e fino a 90 km in elet...
Quali sono i migliori produttori di tecn...
Come guardare YouTube senza pubblicit&ag...
Il telescopio spaziale europeo ESA Eucli...
Addio stampa 3D a strati: il metodo che ...
Data center ed energia green: Aruba acqu...
Windows scarica software non richiesto q...
Auto europea, Bloomberg: uno stabiliment...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v