Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
laboratoare:laborator07 [2015/12/02 18:23] Andrei Roșu-Cojocaru |
laboratoare:laborator07 [2015/12/05 15:18] (current) Andrei Roșu-Cojocaru |
||
|---|---|---|---|
| Line 819: | Line 819: | ||
| De asemenea, este necesar să se bifeze opțiunea //Also replace local wsdl file with original wsdl located at://, astfel încât să se descarce definiția serviciului web (fișierul WSDL) de la locația în care a fost publicat de către server: | De asemenea, este necesar să se bifeze opțiunea //Also replace local wsdl file with original wsdl located at://, astfel încât să se descarce definiția serviciului web (fișierul WSDL) de la locația în care a fost publicat de către server: | ||
| - | {{ :laboratoare:laborator07:netbeans_client04.png?nolink&600 }} | + | {{ :laboratoare:laborator07:netbeans_client04.png?nolink }} |
| Clasele generate sunt vizibile în secțiunea //Generated Sources (jax-ws)//. | Clasele generate sunt vizibile în secțiunea //Generated Sources (jax-ws)//. | ||
| Line 1042: | Line 1042: | ||
| public List<SupplyOrderInformation> makeSupplyOrderBasedOnStockpile(@WebParam(name = "stockpile") int stockpile); | public List<SupplyOrderInformation> makeSupplyOrderBasedOnStockpile(@WebParam(name = "stockpile") int stockpile); | ||
| </code> | </code> | ||
| - | </spoiler> | ||
| b) Se adnotează clasele ''BookPresentationInformation'' și ''SupplyOrderInformation'', ale căror instanțe vor fi transmise prin rețea, sub formă de documente XML, astfel încât JAXB să cunoască mecanismul prin care obiectele Java pot fi transformate în scheme XML și invers: | b) Se adnotează clasele ''BookPresentationInformation'' și ''SupplyOrderInformation'', ale căror instanțe vor fi transmise prin rețea, sub formă de documente XML, astfel încât JAXB să cunoască mecanismul prin care obiectele Java pot fi transformate în scheme XML și invers: | ||
| Line 1056: | Line 1055: | ||
| - toate metodele de tip getter (cu excepția celei care furnizează identificatorul, ''getId()'') vor fi adnotate folosind însemnarea ''@XmlElement''. | - toate metodele de tip getter (cu excepția celei care furnizează identificatorul, ''getId()'') vor fi adnotate folosind însemnarea ''@XmlElement''. | ||
| - | ==== Eclipse ==== | + | **Eclipse** |
| c) Este necesar să se publice serviciul web ''BookPresentationManager'' printr-un apel al metodei ''Endpoint.publish()''. Pentru fiecare serviciu web publicat, trebuie să se folosească un port dedicat. | c) Este necesar să se publice serviciul web ''BookPresentationManager'' printr-un apel al metodei ''Endpoint.publish()''. Pentru fiecare serviciu web publicat, trebuie să se folosească un port dedicat. | ||
| Line 1065: | Line 1064: | ||
| </code> | </code> | ||
| - | ==== NetBeans ==== | + | **NetBeans** |
| c) Nu este necesar să se realizeze nici o acțiune suplimentară, întrucât clasele adnotate cu însemnarea ''@WebService'' sunt detectate automat ca servicii web (vizibile în secțiunea //Web Services//) al căror conținut este instalat în contextul serverului de aplicații în momentul în care se accesează opțiunea //Deploy//. | c) Nu este necesar să se realizeze nici o acțiune suplimentară, întrucât clasele adnotate cu însemnarea ''@WebService'' sunt detectate automat ca servicii web (vizibile în secțiunea //Web Services//) al căror conținut este instalat în contextul serverului de aplicații în momentul în care se accesează opțiunea //Deploy//. | ||
| - | + | </spoiler> | |
| - | ===== ===== | + | |
| **6**. Să se construiască un client care să acceseze funcționalitățile corespunzătoare serviciului web ''BookPresentationManager''. Să se testeze metodele expuse la distanță prin intermediul serviciului web. | **6**. Să se construiască un client care să acceseze funcționalitățile corespunzătoare serviciului web ''BookPresentationManager''. Să se testeze metodele expuse la distanță prin intermediul serviciului web. | ||
| Line 1078: | Line 1076: | ||
| b) Se generează definițiile de clase necesare pentru accesarea funcționalităților expuse de serviciul web. | b) Se generează definițiile de clase necesare pentru accesarea funcționalităților expuse de serviciul web. | ||
| - | ==== Eclipse ==== | + | **Eclipse** |
| În directorul ''scripts'' aferent proiectului, se creează un script ''client[.bat|.sh]'' care rulează comanda ''wsimport'' necesară generării claselor necesare pentru accesarea metodelor expuse prin intermediul serviciului web: | În directorul ''scripts'' aferent proiectului, se creează un script ''client[.bat|.sh]'' care rulează comanda ''wsimport'' necesară generării claselor necesare pentru accesarea metodelor expuse prin intermediul serviciului web: | ||
| Line 1088: | Line 1086: | ||
| Se indică locația la care este publicat fișierul WSDL conținând definiția serviciului web precum și locația la care va fi plasat codul sursă, prin intermediul opțiunii ''-s''. | Se indică locația la care este publicat fișierul WSDL conținând definiția serviciului web precum și locația la care va fi plasat codul sursă, prin intermediul opțiunii ''-s''. | ||
| - | ==== NetBeans ==== | + | **NetBeans** |
| Este necesar să se creeze un client pentru serviciul web (definirea unei resurse de tip //Web Service Client// din secțiunea //New// a meniului contextual asociat proiectului). Aceasta va specifica adresa Internet la care a fost publicat fișierul WSDL ([[http://localhost:8081/07-BookStore-JAXWS-Server/BookPresentationManager?wsdl]]). Ulterior, generarea codului sursă se face prin accesarea opțiunii //Refresh// din meniul contextual asociat referinței la serviciul web. Se va folosi opțiunea //Also replace local wsdl file with original wsdl located at//. Clasele generate vor fi evidențiate prin plasarea lor în secțiunea //Generated Sources (jax-ws)//. | Este necesar să se creeze un client pentru serviciul web (definirea unei resurse de tip //Web Service Client// din secțiunea //New// a meniului contextual asociat proiectului). Aceasta va specifica adresa Internet la care a fost publicat fișierul WSDL ([[http://localhost:8081/07-BookStore-JAXWS-Server/BookPresentationManager?wsdl]]). Ulterior, generarea codului sursă se face prin accesarea opțiunii //Refresh// din meniul contextual asociat referinței la serviciul web. Se va folosi opțiunea //Also replace local wsdl file with original wsdl located at//. Clasele generate vor fi evidențiate prin plasarea lor în secțiunea //Generated Sources (jax-ws)//. | ||
| - | |||
| - | ===== ===== | ||
| c) Se definește clasa ''BookPresentationManagerClient'' în pachetul ''ro.pub.cs.aipi.lab07.main'', conținând metoda ''main()'': | c) Se definește clasa ''BookPresentationManagerClient'' în pachetul ''ro.pub.cs.aipi.lab07.main'', conținând metoda ''main()'': | ||
| Line 1129: | Line 1125: | ||
| ===== Soluții ===== | ===== Soluții ===== | ||
| - | TODO | + | [[https://github.com/aipi2015/Laborator07/tree/master/solutions/eclipse|Proiect Eclipse]]\\ |
| + | [[https://github.com/aipi2015/Laborator07/tree/master/solutions/netbeans|Proiect NetBeans]] | ||
