JAX-WS: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: spazio dopo segni di punteggiatura e modifiche minori |
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti. Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Attività per i nuovi utenti Suggerito: aggiungi collegamenti |
||
(7 versioni intermedie di 6 utenti non mostrate) | |||
Riga 3:
==Descrizione==
JAX-WS è un nuovo modello di programmazione che semplifica lo sviluppo delle applicazioni attraverso il supporto di un modello standard, ''annotation-based'', per sviluppare Web service application e client. Le specifiche di JAX-WS si allineano strategicamente con la tendenza attuale del settore verso un modello di messaggistica più ''document-centric'' e sostituisce il modello di [[chiamata di procedura remota]] (''object-centric'' model) come definito da JAX-RPC.
Con un servizio document-centric, la logica di fatto viene tenuta separata dal contenuto del documento. Il servizio riceve un documento [[XML]], che contiene solo dati. I metodi specifici non vengono richiamati, ma il Web service applica la sua [[logica di business]] al documento, il cui contenuto determina il flusso di lavoro di elaborazione. Il web service di un'agenzia di viaggi è un buon esempio di servizio document-centric. Il servizio riceve una richiesta: un documento [[XML]] che contiene i dettagli dell'itinerario di viaggio che si desidera effettuare (date, luoghi da visitare, alloggio preferito, e così via), il servizio elabora la richiesta in base al contenuto del documento.
JAX-WS è il modello di programmazione strategica per lo sviluppo di servizi Web. L'implementazione dello standard di programmazione della JAX-WS fornisce importanti miglioramenti come: migliore indipendenza della piattaforma per le applicazioni [[Java (linguaggio di programmazione)|Java]], [[Annotazione (Java)|annotazioni]], richiamare i servizi Web in modo asincrono, client dinamici e statici, Supporto per il Message Transmission Optimized Mechanism (MTOM, metodo di trasmissione di dati binari da e verso Web service), il supporto per SOAP.
Riga 26:
Scriviamo ad esempio un semplice programma che calcoli l'area e il perimetro di un poligono regolare, creiamo quindi una classe “FunzioniPoligoniRegolari”, in cui definiamo l'interfaccia astratta “MioWs” al cui interno dichiariamo i metodi che andremo ad implementare; poi creiamo il nostro main.
<
package MioSOAP;
Riga 55:
}
}
</syntaxhighlight>
Endpoint.Publish(String address, Object implementor) è un metodo che crea e pubblica un endpoint per l'oggetto “implementor” al dato indirizzo “address”.
Da notare che lo schema WSDL viene così creato automaticamente.
Creiamo inoltre la classe “Implementazione” dove implementeremo i metodi dichiarati nella precedente [[classe astratta]].
<
package MioSOAP;
Riga 93:
}
}
</syntaxhighlight>
Una volta compilato il [[codice sorgente]] usando il comando javac, bisogna effettuare un ulteriore passo: chiamare il tool Wsgen come di seguito:
<
> wsgen –cp . MioSOAP.Implementazione
</syntaxhighlight>
Il main attiva un server http sulla porta fissata (nel nostro caso 8080).
Riga 116:
** serviceName: nome del servizio (wsdl:service) (nome della classe concatenato alla Stringa “Service”)
** endpointInterface: (es. endpointInterface = "package.MioSOAP.MioWS") specifica il nome completo della SEI (“Service endpoint Interface”, interfaccia Java che dichiara i metodi che un client può invocare sul servizio) endpointInterface: (classe java, comprensiva del package, concatenata alla Stringa “ServicePortType”)
** targetNamespace: [[namespace]] di riferimento per il WSDL e gli XML generati (nome del package java)
** wsdlLocation: l'indirizzo documento WSDL del Web service. L'indirizzo può essere relativo o assoluto.
* @WebMethod Posta sopra la firma del metodo, dice all'interprete Java che si intende pubblicare questo metodo come un Web service. Il corrispettivo metodo dovrà essere dichiarato “public” e dovrà restituire qualcosa (nel nostro caso restituisce un double). Anche questa ha alcuni attributi come:
Riga 139:
==Collegamenti esterni==
*{{cita web | 1 = http://jax-ws.java.net/ | 2 = JAX-WS Java.net | accesso = 18 luglio 2011 | dataarchivio = 9 agosto 2011 | urlarchivio = https://web.archive.org/web/20110809125412/http://jax-ws.java.net/ | urlmorto = sì }}
*{{cita web|http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/|Java Sun Articles}}
*{{cita web|
*{{cita web|url=
*{{cita web |1=https://jax-ws.dev.java.net/ |2=JAX-WS Developer |accesso=18 luglio 2011 |urlarchivio=https://web.archive.org/web/20070711131121/https://jax-ws.dev.java.net/ |dataarchivio=11 luglio 2007 |urlmorto=sì }}
*{{cita web|
*{{cita web|http://www.dontesta.it/blog/programming/come-realizzare-handlers-in-jax-ws/|Come realizzare Handlers in JAX-WS}}
|