JAX WS 2
Upcoming SlideShare
Loading in...5
×
 

JAX WS 2

on

  • 2,354 views

 

Statistics

Views

Total Views
2,354
Views on SlideShare
2,341
Embed Views
13

Actions

Likes
0
Downloads
24
Comments
0

2 Embeds 13

http://www.slideshare.net 10
http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JAX WS 2 JAX WS 2 Presentation Transcript

  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa JAX-WS2: Web Services made easy di Mario Cartia mario.cartia@codebase.it
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa La diffusione delle architetture SOA ha portato alla ribalta negli ultimi anni il ruolo dei Web Services nell'ambito dello sviluppo software La specifica JSR 101 (JAX-RPC 1.1) ha consentito agli sviluppatori Java di utilizzare WS fino alla definizione della specifica JSR 244 (Java API for XML-Based Web Services) seppure con alcune limitazioni...
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Layers sottostanti (binding e parsing) legati ad implementazioni proprietarie Interoperabilità Performances Modello di sviluppo
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa L'utilizzo delle annotations consente di creare un WS a partire da una classe POJO @WebService public class Calculator { public int add(int a, int b) { return a+b; } ● Tutti i metodi pubblici sono esposti come operazioni web service ● Un WSDL con valori di default è generato in automatico
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa ...o da un EJB @WebService @Stateless public class Calculator { @Resource WebServiceContext context; public int add(int a, int b) { return a+b; } ● L'EJB “conserva” tutte le sue features (transazioni, sicurezza, interceptors, ...
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Agendo sulle annotations è possibile rendere più leggibile il WSDL autogenerato @WebService(name=”CreditRatingService”, targetNamespace=”http://example.org”) public class CreditRating { @WebMethod(operationName=”getCreditScore”) public Score getCredit( @WebParam(name=”customer”) Customer c) { // ... implementazione ... } }
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Creazione del client Java SE Il tool “wsimport” a partire dal WSDL crea le classi di supporto Per invocare una operazione WS è necessario istanziare la classe service ed ottenere il proxy mediante chiamata al metodo get<ServiceName>Port CalculatorService svc = new CalculatorService(); C a l c u l a t o r p r o x y = s v c. g e t C a l c u l a t o r Po r t ( ) ; i n t a n s w e r = p r o x y. a d d ( 3 5 , 7 ) ;
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Creazione del client Java EE Il tool “wsimport” a partire dal WSDL crea le classi di supporto Con il meccanismo della dependancy injection, mediante annotation @WebServiceReference ottengo la reference (N.B. non è necessario utilizzare JNDI)
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Esempio @Stateless public class MyBean { // Resource injection @ We b S e r v i c e R e f ( C a l c u l a t o r S e r v i c e. c l a s s ) Calculator proxy; public int mymethod() { r e t u r n p r o x y. a d d ( 3 5 , 7 ) ; }
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Annotations utilizzate in JAX-WS ● JSR 181: Web Services Metadata for the Java Platform ● JSR 222: Java Architecture for XML Binding (JAXB) ● JSR 224: Java API for XML Web Services (JAX-WS) ● JSR 250: Common Annotations for the Java Platform
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa @WebService Si applica ad una classe o ad una interfaccia (implementazione o interfaccia). Attributi ● endpointInterface ● name ● portName ● serviceName ● targetNamespace ● wsdlLocation
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa @WebMethod Personalizza un metodo esposto come operazione WS N.B. Non è necessario che il metodo dichiari di lanciare una java.rmi.RemoteException. Attributi ● action ● exclude ● operationName
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa @WebParam Personalizza la mappatura di un parametro di input ad una parte del messaggio WS ed ad un elemento XML Attributi ● header ● mode ● name ● partName ● targetNamespace
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa @WebResult Come il precedente ma si applica ai valori di ritorno Attributi ● header ● name ● partName ● targetNamespace
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 – Ragusa Utilizzando Java SE 6 è possibile pubblicare un web service senza l'ausilio di un web server javax.xml.ws.Endpoint.publish(url, object);
  • Meeting JUG Sicilia / ASI 21 Maggio 2008 – Ragusa Grazie per l'attenzione! Mario Cartia mario.cartia@codebase.it