|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Web Service Axis che comunica con client PHP
Ciao,
devo sviluppare per un esame una configurazione come da titolo. Al livello di web service semplice (che restituisce dati string, int) credo di esserne capace. Il problema però è che vorrei che il web service in axis (che comunica con un db) restuisse oggetti (es. oggetto "Persona"), e che il mio client php possa in qualche modo ricreare l'oggetto. Tuttavia non so proprio da dove iniziare. Magari non è possibile visto che si ha a che fare con 2 linguaggi diversi? Datemi qualche indicazione.... ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Axis è un webservice Java, giusto ?
Ma fammi capire...questi oggetti sono generici oppure hanno un formato prefissato (ad esempio puoi passare un tot di classi predefinite) ? |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Quote:
In sostanza, come saprai, crea le strutture dati necessarie per la comunicazione tramite web service, effettua la serializzazione degli oggetti che gli indichi, fornisce le primitive di comunicazione... eccetera, rende cioè trasparente all'utente l'implementazione del "protocollo" dei web service, che possono essere usati come normali oggetti Java. Axis produce, come output, un puro XML conforme allo standard WSDL del W3C (la versione supportata dipende dalla versione di Axis): quindi, se la tua applicazione (suppongo Java, a questo punto) server che legge il DB e comunica i risultati tramite un web service alla tua applicazione "client" PHP, quello che leggerai lato PHP come risposta alla tua richiesta sarà un XML formattato secondo il WSDL del servizio Java che hai richiamato, completamente indipendente dal linguaggio utilizzato. Però non puoi usare Axis per creare un client web service PHP "direttamente": piuttosto, puoi utilizzarlo per creare un client web service Java o C++, che poi richiamerai da PHP. Aggiungo un elenco di framework web service disponibili: link su wikipedia.
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN Ultima modifica di Mixmar : 22-07-2007 alle 10:03. Motivo: Completamento |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Ciao,
il mio client deve essere per forza in php. Java axis deve esporre un oggetto. Chiamiamolo come prima persona... Axis serializza l'oggetto persona in un complex type, un xml contenente i miei dati. Quello che mi chiedo e credo sia possibile è, php riceve questo oggetto e lo può utilizzare in modo trasparente? (cioè richiamare i metodi di persona come se fosse un oggetto locale)? es. questo web service client in php http://www.onlamp.com/pub/a/php/2003...ap.html?page=2 nlla pagina si legge PEAR::SOAP listens for this response and parses the XML into a PHP object, which is then returned by our method and stored in $books. cioè l'estensione SOAP di pear effettua il parse dell'xml in un oggetto php ritornato dal nostro metodo, e lo memorizza in book Codice:
$books = $client->ManufacturerSearchRequest($params); Codice:
foreach ($hits->Details as $hit) { $ProductName = html_entities($hit->ProductName); $Authors = join(' and ', $hit->Authors); print <<< _HTML_ <div style="clear:left; width: 300px; padding:5px; margin:5px; background:#ddd;"> <a href="$hit->Url"><image src="$hit->ImageUrlSmall" alt="$ProductName" align="left"></a> <b>$ProductName</b><br/> By $Authors<br/> Amazon.com Price: $hit->OurPrice<br/> </div> _HTML_; } non ho acnora provato (ho ancora qualche problema con axis) però dall'esempio si capisce che è fattibile. Anche perchè non si menziona neppure la tecnologia utilizzata dal web service |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:08.