Començarem l’activitat important els projectes “Resentioc” i “Resentclientioc”, que us serviran de punt de partida, a NetBeans.
Una vegada tingueu els dos projectes importats a NetBeans cal que desplegueu el servei web de gestió de reserva d’entrades per a concerts fent clic amb el botó dret sobre el projecte “Resentioc” i polsant Run (vegeu la figura).
Un cop desplegat i amb el servidor d’aplicacions corrent, verifiqueu que el servei web funciona correctament fent clic amb el botó dret al servei web NetbeansTicketService
i seleccionant Test Web Service (vegeu la figura).
I s’obrirà al navegador una pàgina web (vegeu la figura) on podreu veure el document WSDL de definició del servei web i la llista d’operacions que ofereix, cada una amb entrades per als seus paràmetres i un botó per provar-la:
Nota important: la carpeta on teniu el projecte “Resentclientioc” no hauria de tenir espais en blanc al path, ja que wsimport
no generaria bé els artefactes.
Ara toca fer servir NetBeans per crear una aplicació Java que consumeixi aquest servei web. Per fer-ho, feu clic amb el botó dret al projecte “Resentclientioc” i seleccioneu New / Web Service Client… (vegeu la figura).
A l’assistent cal especificar l’URL on està publicat el document WSDL de definició del servei web i el paquet on volem que NetBeans generi els artefactes necessaris per poder consumir el servei web des d’aquest client (vegeu la figura).
Quan polseu Finish, NetBeans generarà els artefactes necessaris per poder consumir el servei web amb la utilitat wsimport
i afegirà una referència al servei web al menú Web Service References (vegeu la figura) i un conjunt de classes Java amb els artefactes necessaris per poder consumir el servei web al paquet cat.xtec.ioc.service.jaxws
.
Ara creeu la classe NetBeansTicketServiceClient
al paquet cat.xtec.ioc.client
, creeu a la classe un mètode main
i feu-hi clic amb el botó dret de ratolí: Insert Code… / Call Web Service Operation…; veureu que us apareixen els serveis web que teniu referenciats (vegeu
la figura) i podeu escollir l’operació que voleu cridar.
Seleccioneu l’operació getAllShows
i NetBeans us generarà el codi necessari per cridar l’operació al servei web. Si NetBeans us genera els noms de les classes amb el prefix del paquet cat.xtec.ioc.service.impl
elimineu-lo i afegiu els imports corresponents al paquet on wsimport
ha generat els artefactes necessaris per poder consumir el servei web (cat.xtec.ioc.service.jaxws
).
package cat.xtec.ioc.client;
import cat.xtec.ioc.service.jaxws.NetbeansTicketService;
import cat.xtec.ioc.service.jaxws.NetbeansTicketService_Service;
import cat.xtec.ioc.service.jaxws.Show;
public class NetBeansTicketServiceClient {
public static void main
(String[] args
) {
try { // Call Web Service Operation
NetbeansTicketService_Service service = new NetbeansTicketService_Service();
NetbeansTicketService port = service.getNetbeansTicketServicePort();
// TODO process result here
java.util.List<Show> result = port.getAllShows();
System.
out.
println("Result = "+result
); // TODO handle custom exceptions here
}
}
}
Un cop vist el procés, creeu vosaltres, seguint aquests passos, l’aplicació Java client per gestionar les reserves a concerts. Una possible codificació que mostra el llistat de concerts amb les places disponibles per consola seria la següent:
package cat.xtec.ioc.client;
import cat.xtec.ioc.service.jaxws.NetbeansTicketService;
import cat.xtec.ioc.service.jaxws.NetbeansTicketService_Service;
import cat.xtec.ioc.service.jaxws.Show;
import java.util.List;
public class NetBeansTicketServiceClient {
public static void main
(String[] args
) { NetbeansTicketService_Service service = new NetbeansTicketService_Service();
NetbeansTicketService port = service.getNetbeansTicketServicePort();
List<Show> list = port.getAllShows();
printALlShows(list);
}
public static void printALlShows(List<Show> shows) {
shows.stream().forEach((show) -> {
System.
out.
println("Show [id=" + show.
getId() + ", name=" + show.
getName() + ", available tickets=" + show.
getAvailableTickets() + "]"); });
}
}
El codi de la solució d’aquesta activitat, amb una classe main
que treu per consola el llistat de concerts amb les entrades disponibles, el podeu descarregar del següent
.