In fase di deploy, cioè di messa in produzione del nostro session bean, dovremmo notare sulla console di JBoss Wildfly la stampa di righe simili alle seguenti che ci informano della corretta pubblicazione del servizio:
Per poter comprendere al meglio il codice realizzato e le relative annotations, apriamo il browser e digitiamo l'URL:
http://localhost:8080/ProgettoEjb1/ConverterBeanService/ConverterBean?WSDL
Otteniamo come risposta la parte principale del documento WSDL generato. Concentriamoci per un momento sul tag definitions
:
L'annotation @WebService
agisce sul tag wsdl:definitions
attraverso gli attributi targetNamespace="urn:ConverterBeanService"
e serviceName="ConverterBeanService"
che impostano rispettivamente gli attributi targetNamespace
e name
. Spostiamo adesso l'attenzione sul tag wsdl:service
:
Come possiamo notare, l'attributo serviceName="ConverterBeanService"
di @WebService
agisce anche sul tag service che espone infatti
un attributo per il nome del servizio. Si evidenzia inoltre nel tag wsdl:port
l'azione dell'attributo portName="ConverterBeanPort"
di @WebService
che va ad impostare il valore dell'attributo name
di wsdl:port
.
Il tag wsdl:binding
è soggetto all'azione dell'annotation @SOAPBinding
che imposta il tipo di stile di Web Service (RPC/DOCUMENT). Gli attributi dell'annotation @WebMethod
, operationName
ed action interessano invece rispettivamente gli attributi name
di wsdl:operation
e soapAction
di soap:operation
:
Tornando al tag definitions
osserviamo l'importazione del documento WSDL su:
http://localhost:8080/ProgettoEjb1/ConverterBeanService/ConverterBean?wsdl=ConverterBeanWS.wsdl
Apriamo questo documento con il browser:
Il documento rivela l'azione delle annotation @WebParam
e @WebResult
, possiamo facilmente notare come esse agiscano
sull'attributo name
dei tag wsdl:message
e wsdl:part
.
Se analizziamo il tag wsdl:portType
che espone l'interfaccia del Web Service riusciamo a collegare immediatamente l'attributo name
al nome dell'interfaccia Java che abbiamo definito precedentemente. Infine è facile intuire che l'attributo name
di @WebMethod
agisca anche sul tag wsdl:operation
fornendo un nome specifico alle operazioni esposte dal Web Service.