Java User Group Sarclegna Onlus
www. jugsardegna. org

    
  
  
        

   
  

 

9__Jt: lZ



lr‘A'l‘: “‘~. <. ..' 
...
Java User Group Sarclegna Onlus
www. jugsardegna. org

     
   



ti-I I? 

E Df; aII. fa  aillia 

H 

 

Stefano Sanna...
www. jugsardegna. org , *_ -_
A ;  _Jt: .l. 


.  ".0
U. " ' . 

Java User Group Sarclegna Onlus _

 

I-F  . subseI:  all...
Java User Group Sarclegna Onlus 
www. jugsardegna. org ,1’

 
    

   
pa  re. ntaz: itine fuel Iib1reri“aL

Stefano Sann...
Java User Group Sarclegna Onlus  F’-. »_, 
www. jugsardegna. org , =~’-_‘ I
I.  I" 45). 

 

Stefano Sanna,  Web Services ...
_]ara UHUI‘ Cmtip SeiI‘rIur; t1.i Onltis

’. ".'J'. ‘. _| I_ii]CCiI(It: -g"i. ii CI’’' ‘

 

JAXP 1.2 subset
- E‘ | 'AP|  ...
_]. ireiIlsc*i‘Ci‘rn1pS. ii‘(lut; ii. iOnl

V. ’ W '. ‘. I U I] C ii I if!  ti 9 "i .3 C

 

JAXP

- javax. xm1.parsers

-...
Java User Group Sarclegna Onlus
www. jugsardegna. org

     
 



172-1 E»

D    

 
   

 

      

  

Stefano Sanna,  W...
_]. ira llH(‘I‘ Crotip S'. ii‘rIur; n.i Onltis

’. ".'J'-‘.  _| I_ii]CCiI(It: -g"i. ii CI’’’ ’

 

JAX-RPC 1.1 subset

- E...
www. jugsardegna. org ,1; -_
1 3 _Jt: .l. 


.  ".0
U. " ' . 

Java User Group Sarclegna Onlus _

fl 
  Ill 

   
  

 
   ...
_]. i: ei Ilsvr Cmi1I) S. ii‘(lu(_In. i Onlti. 

V. ’ W '. ‘. _I U [I C ii I if!  C {I "1 .3 C I’ :1

 

WSDL-Java Mapping...
_]«I1’&IllH(‘I‘Gl‘()IlI)SiIl'(l(! tIll«IOlllll. 

’. ".'J I U gcarce: -g "I-3 r 

 

Limitazioni JAX-RPC

- Non sono suppo...
_]«I1’&IllH(‘l‘Cl‘()IlI)SiIl'(l(! tIllrIOllllls

   

’. ".'J I U gcarcz: -g "i. :i C.  I’ 3 
I I_J Ci
~ ”

JAX-RPC:  invo...
JAX-RPC:  invocare metodi remot

MIDIet
REQUEST

Web Service

RESPONSE
My

 

 

Stefano Sanna,  Web Services e dispositii...
_]IireiIlsc*rCi‘rii1I)SIii‘(lutIii. iOiilii. 

V. ’ W '. ‘. _I U [I C ii I if!  C {I "1 .3 C I’ :1

 

Stub

- La creazion...
_]. ira Ilsm‘ Ci‘otiI) S'Iii‘rIurIii. i Oiilii. 

V. ’ W '. ‘. _I U [I C ii I if!  C‘ {I "I it C I’ :1

 

Strumenti di sv...
_]IireiIlsc*rCi‘rit1I)SIii‘(lutIii. iOiiltis

V. ’ W '. ‘. _I U [I C ii I if!  C {I "1 .3 C I’ :1

 

Web Service d'esempi...
llH(! l' Group S‘



  
    

Edit

   

I‘iIiIi»i'

Htlll

      
  
      
  
  
  
    
  
  
  
  
   

5"“ P'°I"“- Q ...
_]nVn User Group Sm‘dugIm Onlu

w w ‘.2 1 j u g '3 in r0 cg ". 

 

Stub Generator

’Il‘>‘~~H~'-:11‘[|1VI“l

WSDL Filename...
Lo stub e pronto al| 'uso

- Lo Stub Generator Projects : ;s; s|§| |g| | Files Runtime
ha creato:  9 is

9 Q jipdayaweathe...
_]. i'uUs<*rCi‘o11pSurtloon

 

L'interfaccia dello stub

import java. rmi. Remote; 

public interface Globalweathersoap e...
_]. in User Group Smile Oulus

J L

 

Lo stub /1

- Lo stub fa riferimento alla Service Provider
Interface: 

import java...
_]Illl User Group Suriloou. 

 

W 2'4  lo I] C C

Lo stub /2

public class GlobalWeatherSoap_Stub implements
jipday. weat...
_]a»‘n User Group Sur‘(logrm Oulus 

ww'. ~. _|  U [ ica r'cs: r_;  "l. :1 Elf; 

 

Property dello Stub

- Attraverso il ...
_]. i: u User Group Sui'(leoii. i Oiilu

,  .
Project conflgiralon:  Defanltcoriflguntlon D

Qucyoryz

‘ General D use valu...
_]. iru User Group Seii'ileipi. i Oiilu. 

viw Jligcarce: -g'n. :i mf: 

 

MobileG| oba| Weather

- Scriviamo una M| D|et...
_]rl'&l User Group Sui‘(le(_; i 'Olllll. 

 

J r, i_. 

ll “teIaio" della MIDlet

public class llobiletiloballileather ex...
_]. i'u User Group Sni'(le(_; ii. a Oiilus

v. ".‘¢‘. ‘. ‘| l,lI: l', -C 29': -.1 L l _. 

 

lnizializzazione

private vo...
_]. i'u User Group Sni'(le(_; ii. a Oiilu. 

V. ’ W ‘. ‘. _|  U I] C Ci l (1 >32 9 "- Cl C l’ :2

 

Gestione degli eventi...
_]. in User Group Seirile

W 2'4  _i Ll i_i

 

lnvocazione remota

public void run() {

try {

String result =  stub. get...
1;‘

 

: .
‘I

O
'i‘. uII

Is it Oltlo Ilse Airtime ? 

i'40b<| tC| Ob': l""/ eiilllcrmishli in send and

receive data us...
T: 



.155;

  
    

Java User Group Sardegna Onlus
www. jugsardegna. org , 

 
   
    
 

Sarpresa

    
 

 
 
   

‘...
_].1'n Uswr Crmlp Sm'(iu(_; r1.a Onln

V. ’ W ‘. ‘. _|  U I] C in (1 >32 9 "- .3 C V’ :2

 

La response é XML! 

<? xm1 v...
_]. irn llH(‘l‘ Crmip S'. n‘(luqrm Onlu. 

V. ’ W '. ‘. _|  U I] C in C if Q "i .3 C l’ :2

 

lnvocazioni sincrone

- WSA...
www. jugsardegna. org ,1; -_
A ;  _II: .l. 


.  ".0
U. " ' . 

Java User Group Sardegna Onlus _

2 

 
     

E   a      ...
lnvocazioni su Thread separato

class StartEngineTask implements Runnable {
public void run() {

stub. startEngine(); 

if...
Java User Group Sardegna Onlus

wwI. v.jugsardegna. org  V

7
3

 d. isp, nsi 'ivi  

Stefano Sanna,  Web Services e dispo...
5
0
0
2
e
M
m
mm
tr
12
W0
. .aa, 
/m
70
¢‘R
0.
nu , 
om
Wm
rum
em
56
£0.
clo
/5
3
case
bk

In! 
/m
a, .a
n. v
n. .a
3]
50,...
wwI. v.jugsardegna. org ; '_ -_
A 3 _II: .l. 


.  ".0
I/ ~ . 

Java User Group Sardegna Onlus _

  

    
  

  

      
...
_]rlr’iI Ilsei‘ Group S. ii‘ilugii. I Oiilus 

w'. ‘J'. ‘. _| I_Ig': Cir’(It: ‘(_i"I. :1 CI}

 

Uso delle librerie di un ...
_]rl1’il Ilsei‘ Cmiip S'. Ii‘ilI! giI. I OIIIII. 

w'. ‘J'. ‘. _| I_Ig': Cir’(It: ‘(_i"I. :I "

 

Mirae:  un aiuto da Apa...
_]rl1’il Ilsei‘ Cmiip S'. Ii‘ilI! giI. I OIII

w'. ‘J'. ‘. _| I_Ig': Cir’(It: ‘(_i"I. :1 CI

 

Mirae:  piccoli ritocchi. ...
_]rlTil Usei‘ Cmiip S'. Ii‘(lui; iI. I Oiilus

V. ’ W '. ‘. I Li I] C {I l C If (:1 "I ii I:  I’ :2

 

Un semplice web se...
_]rl'ii User Cmiip SiIi‘(lu(_; ii. I Oiiliis  "7

V. ".‘¢‘. ‘. : |l, lI: lfC 2f_. "I. .I I, I_.  , , 

 

L'interfaccia de...
_]. I: eI User Cmiip SiIi‘(lu(_; iI. I Onlus

V. ’ W '. ‘. I (I I] C {I I If!  I2 9 "1 CI I:  I’ :2

 

He| loWSWor| d: il...
_]rl'ii User Group SiIi'IluI_; ii. I OIIIII. 

V. ’ W ‘. ‘. _|  Ll I] 5 CI I If:  >32 9 "1 CI I:  I’ :2

 

lnizializzazio...
_]rl'ii User Croiip SiIi‘(lu(_iii. I Oiiliis  "7

’. ".'J‘-‘.  ‘| l.ll: lfC : ‘f_i'I-Cl l,  l :2 ,  ,

 

Gestione degli e...
_]. an Us<‘I‘(7I‘()I1[)§nI‘(iuqr1.a(")H| Hs

V. ’ '. ‘w  _y L:  1] C C _ ,  I _. 

 

lnvocazione remota

public void run(...
www. jugsardegna. org , *_ -_
A ;  _Jt: .l. ,


.  ".0
U. " ' . 

Java User Group Sardegna Onlus _

H      M
     be   eel...
Java User Group Sardegna Onlus
www. jugsardegna. org

    
 

    
    

 



9__Ji: lZ

'7:V V A V, 

  
     
  
     

...
Java User Group Sardegna Onlus
www. jugsardegna. org

      
 
 

   

 

ff:  ?; 

.  .’_V
.  _ ‘V 5‘
‘K . 
i_ ,  _

. .-...
_]. irn Ilsei‘ Group S'rll'(l(! t}llri Onlu. 

viw Jugcarce: -g'n. :i r 

 

Dopo la WSA

- ll Java Community Process pros...
_]rl/ il User‘ Group S'. ii‘(leg; iiii On

V. ’ W ‘. ‘. ] U Q '3 Ci (O (‘Q "I .21

 

Conclusioni

- La Web Services API i...
_]rl7&l llsei‘ Group Silllllitlllrl Oiiliis 

viw _ii_ig: aice: -g'n. :i cif: 

 

Bibliografia

- Un esempio de| |'uso di...
_]. i: ei User Group Siii‘ile(_iii. i Oiiliis

V. ’ W '. ‘. _|  U i] C CH C if g "- Cl C l’ :1

 

Bibliografia

- La piat...
Stefano San

2' Meeting Java

Grazie per _l'attenzione : -)

I
'4
l “*

Farmer Clem meets the 21st C by | umix200-1
http: ...
_]rl'i1lfS(‘l‘(_ll'()ll[)Sill'(l(l(]l

V. ’ i.  A o C

 

Web Services e dispositivi Java ME

) (versione 1.1)
l

l
e gara...
Upcoming SlideShare
Loading in...5
×

Web Services with Java ME

3,717

Published on

Seminario sulla Web Services API per J2ME presentato al JMDF (http://www.jmdf.org)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,717
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Web Services with Java ME"

  1. 1. Java User Group Sarclegna Onlus www. jugsardegna. org 9__Jt: lZ lr‘A'l‘: “‘~. <. ..' Moble‘. IJeveI6n‘ers return ' I ‘IltII! l?5.L/ l.h‘! lf. _|_. ;|17!2’lll! ‘.‘D'l']; Se nnga Stefano Sanna, Web Services e disposjtjwjava ME 1 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  2. 2. Java User Group Sarclegna Onlus www. jugsardegna. org ti-I I? E Df; aII. fa aillia H Stefano Sanna, Web Services e disposjtjwjava ME 2 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  3. 3. www. jugsardegna. org , *_ -_ A ; _Jt: .l. . ".0 U. " ' . Java User Group Sarclegna Onlus _ I-F . subseI: all Stefano Sanna, Web Services e dispositivijava ME 3 2' Meeting Java Mobile Developers Forum, Roma, 02 Dieembre 2005
  4. 4. Java User Group Sarclegna Onlus www. jugsardegna. org ,1’ pa re. ntaz: itine fuel Iib1reri“aL Stefano Sanna, Web Services e dispositivijava ME 4 2' Meeting Java Mobile Developers Forum, Roma, 02 Dieembre 2005
  5. 5. Java User Group Sarclegna Onlus F’-. »_, www. jugsardegna. org , =~’-_‘ I I. I" 45). Stefano Sanna, Web Services e dispositivijava ME 5 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  6. 6. _]ara UHUI‘ Cmtip SeiI‘rIur; t1.i Onltis ’. ".'J'. ‘. _| I_ii]CCiI(It: -g"i. ii CI’’' ‘ JAXP 1.2 subset - E‘ | 'AP| per il parsing di documenti XML - Caratteristiche: — Requisiti minimi: CLDC 1.0 e 35KB footprint! — Sottoinsieme della specifica JAXP 1.2 — Supporto a| |'interfaccia SAX 2.0 — Supporto agli XML namespaces - Supporto codifiche UTF-8 e UTF-16 — L'eventuaI_e validazipne con DTD e’ opzionale (ptuttosto Improbabile. ..) Stefano Sanna, Web Sent-‘ice. -s (2 d1‘spos'itivi_/ ave i! E 2' l‘leeI. ing Java Mobile Developers Forum, Roma, O2 I')icon1bre 2005
  7. 7. _]. ireiIlsc*i‘Ci‘rn1pS. ii‘(lut; ii. iOnl V. ’ W '. ‘. I U I] C ii I if! ti 9 "i .3 C JAXP - javax. xm1.parsers - contiene il SAX parser, Ia relativa factory e le classi delle eccezioni - org. xm1.sax — contiene il core delle API SAX (Attribute, Locator, Inputsource. ..) - org. xm'L. sax. he1pers — contiene Ia_cIasse E_)efaultHandler per la gestione degli eventi dl parsing Stefano Sanna, Web Sc. -n-‘ices (2 disposi(ivijai’u iIE 2' Meeting java Mobile Developers Forum, Roma, 02 I')ic'on1brc, - 2005
  8. 8. Java User Group Sarclegna Onlus www. jugsardegna. org 172-1 E» D Stefano Sanna, Web Services e dispositivijava ME 8 2' Meeting Java Mobile Developers Forum, Roma, 02 Dieembre 2005
  9. 9. _]. ira llH(‘I‘ Crotip S'. ii‘rIur; n.i Onltis ’. ".'J'-‘. _| I_ii]CCiI(It: -g"i. ii CI’’’ ’ JAX-RPC 1.1 subset - E‘ | 'AP| per l'invocazione remota di metodi attraverso documenti XML - Caratteristiche: — Supporta WSDL 1.1 — Supporta SOAP 1.1 (1.2 in futuro) — Supporto XML 1.0 e XML Schema — Binding su_SOAP e trasporto H1'| 'P (con supporto autenticazione base) - Conforme al WS-I Basic Profile 1.0 Stefano Sanna, Web Sent-‘ice. -s (2 d1'spos'itivi_/ ave i! E 2' l‘leeI. ing Java Mobile Developers Forum, Roma, O2 l')icon1bre 2005
  10. 10. www. jugsardegna. org ,1; -_ 1 3 _Jt: .l. . ".0 U. " ' . Java User Group Sarclegna Onlus _ fl Ill j ‘ rtam. es_pa. ee r: n;nti’eneI la ': ElHSSiE3 QName B Stefano Sanna, Web Services e dispositivijava ME 10 2' Meeting Java Mobile Developers Forum, Roma, 02 Dieembre 2005
  11. 11. _]. i: ei Ilsvr Cmi1I) S. ii‘(lu(_In. i Onlti. V. ’ W '. ‘. _I U [I C ii I if! C {I "1 .3 C I’ :1 WSDL-Java Mapping xsd:1ong long java.1ang. Long xsd: int int java.1ang. Integer xsd: short short java.1ang. Short xsd : byte byte java . tang . Byte xsd: ftoat float java.1ang. Float xsdzdouble double java.1ang. Doub1e xsdzstring String _ _ _ _ _ _ _ 1 xsd: base64Binary byte[] ' 59709 5'1 di5P05itfVf xsd: hexBinary byte[] '_ _. C'_7'D_C£'0_ _ . i xsd : comp1exType sequenza di classi e primitivi vettory di primitivi e tipi complessi, secondo XML array Stefano Sanna, Web Sc. -n-‘ices (2 disposi(ivijai’u iIE 2' Meeting java Mobile DeveIopt, =rs Forum, Roma, 02 l')ic'on1brc, - 2005
  12. 12. _]«I1’&IllH(‘I‘Gl‘()IlI)SiIl'(l(! tIll«IOlllll. ’. ".'J I U gcarce: -g "I-3 r Limitazioni JAX-RPC - Non sono supportati messaggi SOAP con attachment né message handlers - Non é gestita la rappresentazione encoded di messaggi SOAP Iesclusivamente literal) 0 UDDI non supportato in questa versione - Non e prevista | 'implementazione di endpoint (nessun web service provider su telefoninol) Stefano Sanna, I~l= 'eb Services (2 dispos'itivijai1’a ME 2' l'leet. ing Java Mobile Developers Forum, Roma, O2 Dicenibre 2005
  13. 13. _]«I1’&IllH(‘l‘Cl‘()IlI)SiIl'(l(! tIllrIOllllls ’. ".'J I U gcarcz: -g "i. :i C. I’ 3 I I_J Ci ~ ” JAX-RPC: invocare metodi remot - Utilizzare le routine di invocazione remota aIl'interno di un mobile web service consumer e estremamente semplice. Occorre: — Recuperare il W5DL_ del servizio di interesse e verificare Ia compatibiIita' WS-I — Generare Io stub a partire dal WSDL - Invocare i metodi dello stub dalla MID| et Stefano Sanna, Web Sen~'1c. 'c. -5 e dispos'i"tivijava ME 2' l'leet. ing Java Mobile Developers Forum, Roma, O2 Dicenibre 2005
  14. 14. JAX-RPC: invocare metodi remot MIDIet REQUEST Web Service RESPONSE My Stefano Sanna, Web Services e dispositii-’ijai-'a ME 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  15. 15. _]IireiIlsc*rCi‘rii1I)SIii‘(lutIii. iOiilii. V. ’ W '. ‘. _I U [I C ii I if! C {I "1 .3 C I’ :1 Stub - La creazione dello stub (Interfaccia e implementazione) viene effettuata automaticamente attraverso opportuni strumenti (Stub Generator) - Lo stub é indipendente dalla particolare implementazione della WSA - Lo stub invoca i metodi delle classi della Service Provider Interface Stefano Sanna, Web Sc. -n-‘ices (2 disposi(ivijai’u iIE 2' Meeting java Mobile DeveIopt, =rs Forum, Roma, 02 l')ic'on1brc, - 2005
  16. 16. _]. ira Ilsm‘ Ci‘otiI) S'Iii‘rIurIii. i Oiilii. V. ’ W '. ‘. _I U [I C ii I if! C‘ {I "I it C I’ :1 Strumenti di sviluppo - Attualmente la WSA é supportata, tra gli altri, da: — Sun J2ME Wireless Toolkit 2.2 o superiore — Nokia Developer's Suite 2.2 o superiore - SonyEricsson SDK 2.2.2 forjava ME Platform — IBM Websphere Studio Device Developer - Apache Mirae Project Stefano Sanna, l1‘l"eb . S‘c. -[11-‘ice. -s (2 (11'5p0SI(1'l1’I_]dI.1’u i! E 2' MeeI. ing Java Mobile Developers Forum, Roma, O2 l')icon1bre 2005
  17. 17. _]IireiIlsc*rCi‘rit1I)SIii‘(lutIii. iOiiltis V. ’ W '. ‘. _I U [I C ii I if! C {I "1 .3 C I’ :1 Web Service d'esempio - Globalweatherz fornisce informazioni meteo aggiornate su numerose citta' del mondo 0 Recensito su: http: //www. xmethods. com - WSDL: http : // www . webse rvicex . com/ globalweat he r . asmx? wSDL I test sono stati eseguiti su Windows XP, Linux Mandrake e Mac OS X Tiger Stefano Sanna, Web Sc. -n-‘ices (2 disposi(ivijai’u iIE 2' Meeting java Mobile Dt. ’V'(_‘l(, )pt, ‘l‘S Forum, Roma, 02 l')ic'on1brc, - 2005
  18. 18. llH(! l' Group S‘ Edit I‘iIiIi»i' Htlll 5"“ P'°I"“- Q Qpen Project . . , ‘‘i''IIII| l 7’ Iimlil I H . - Clear Console rinurainrs: Open Project . .. T _ D '3’ gave Console . . 6 I: . amsmuwor . ‘l in (lean natahase I hm Memory Monitor Open Session Network Monitor 0D_{n SOSSIOII Protller Opeg Session Output Pan: wmg WSDL Fllename or URI. ‘ Open console I I Output Package: 5""'“V firgn Mlolet CLDC vuflun M14130! Ctfllfltllli : ,I (Lac 1_o Stub tools 9» CLDC 1.1 Stub generator (Jose I
  19. 19. _]nVn User Group Sm‘dugIm Onlu w w ‘.2 1 j u g '3 in r0 cg ". Stub Generator ’Il‘>‘~~H~'-:11‘[|1VI“l WSDL Filename or URL: Ihttpz/ ;vwvw. webservicex. com/ globalwealher. asmx? WSDL CLDC Version CLDC 1.0 CLDC 1.1 Stefano Sanna, Web Services 9 djsposjtivijuva ME 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2
  20. 20. Lo stub e pronto al| 'uso - Lo Stub Generator Projects : ;s; s|§| |g| | Files Runtime ha creato: 9 is 9 Q jipdayaweather 0- Ii CetCitiesByCountry. java ° Uinterfaccla 0- Ii CetcitiesByCountryResponsejava o- I] Cetweatherjava 0 Lo stub Vero e proprio 0- Ii CetWeatherResponse. java o- E Clobalweathersoaojava . classi su porto per 0- If GlobaIWeatherSoap_StubJava Fiascun me Odo 0- D Moblleclobalweathemava mvocato e relativa risposta Stefano Sanna, l“l/01) S('[''I(. '('. ’>‘ 0 d1'spo_~'1’t1‘v1'javu ME 2' Meeting Java Mobile Developer's Forum, Roma, O2 Di(‘on1bre 2005
  21. 21. _]. i'uUs<*rCi‘o11pSurtloon L'interfaccia dello stub import java. rmi. Remote; public interface Globalweathersoap extends Remote { public String getHeatI1er(String cityhlame, St ring count ryName) throws java. rmi. RemoteException; public String getC: i.tiesByCountry(String countryName) throws java. rmi. RemoteException; Stefano Sanna, Web Sen-‘ices (2 dispositivijava ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 Divonibre 2005
  22. 22. _]. in User Group Smile Oulus J L Lo stub /1 - Lo stub fa riferimento alla Service Provider Interface: import javax. xml. rpc. JAXRPCException; import javax. xml. namespace.0Name; import javax. microedition. xml. rpc.0peration; import javax. microedition. xml. rpc. Type; import javax. microedition. xml. rpc. ComplexType; import javax. microedition. xml. rpc. Elenent; Stefano Sanna, l“l/ vb Services 0 dispositivijava ME 2' Meeting Java Mobile Developers Forum, Roma, O2 Divombre 2005
  23. 23. _]Illl User Group Suriloou. W 2'4 lo I] C C Lo stub /2 public class GlobalWeatherSoap_Stub implements jipday. weather. Globalweathersoap, javax. xml . rpc. Stub { private String[] _propertyNames; private Object[] _PropertyValues; public GlobalweatherSoap_Stub() { _propertyNames = new String[] {ENDPOINT_ADDRESS_PROPERTY}; _propertyValues = new Object[] {"http: //www. webservicex. com/ globalweather. asmx"}; Stefano Sanna, Web Scnices 0 disposiflvijava ME l‘leel. ing Java Mobile Developers Forum, Roma, ()2 Divembre ? .()O5
  24. 24. _]a»‘n User Group Sur‘(logrm Oulus ww'. ~. _| U [ ica r'cs: r_; "l. :1 Elf; Property dello Stub - Attraverso il metodo _setPrope rty() é possibile impostare Ia configurazione dello stub: - ENDPOINT_ADDRESS_PROPERTY - SESSION_MAINTAIN_PROPERTY - USERNA| “|E_PROPERTY — PASSWORD_PROPERTY - II Wireless Toolkit imposta l'indirizzo di default de| |'endpoint Stefano Sanna, Web Services (2 dispositi‘vi_]ava ME 2' l'leel, .ing Java Mobile Developers Forum, Roma, O2 Dicembre 2005
  25. 25. _]. i: u User Group Sui'(leoii. i Oiilu , . Project conflgiralon: Defanltcoriflguntlon D Qucyoryz ‘ General D use values from "Demmcon¢Igur-atiorr‘ a Ilitfom , .. ,.. —.. .., E. ... ... ... ... ... ..= .. m.. .m. ..m g 9 3 Application Descriptor D Annbutes 9 . ... ,.. ., 9*“ °~M"¢°'°-"'0" —U '3 '’“‘" "‘°""" ounce Coriflgintlori: ®cu>c-1.0 o Loc-1.1 D API Permissions 9 ' '""° Devlceyoflle: ‘ Source: Filerlng I Corlplllng Qntionalhslwocc 9 “Owl” ‘ 36°‘-"<95 [1 llretoollufis ask en mi hclnoes in E Oolusutlng , . cnmnofln _. - ' i i - - ii lonll Putuu 1.0 E 5.9". ” Euzueweo Services 1.0 n Ccmruingjvndoc — ‘ - ‘ — - ll PIER! !! 1-0 0 Mining [1 um: IIe¢I| All 1.1 ‘ D'l"°"'"° I] Wireless Mesnglm All 1.1 D van-eless Messaging API 2.0 Stefano Sanna ' 2' (2 dispos ivi ers Forum, Ro
  26. 26. _]. iru User Group Seii'ileipi. i Oiilu. viw Jligcarce: -g'n. :i mf: MobileG| oba| Weather - Scriviamo una M| D|et che utilizza lo Stub appena generato per visualizzare informazioni meteo su una citta italiana (indicata attraverso un TextFie| d) - Visto il Iavoro svolto dallo Stub Generator, sara sufficiente istanziare lo Stub e invocarne i metodi Stefano Sanna, Web Servicres e dispositivi _/ d m ME 2' Meeting Java Mobile Developers Forum, Roma, O2 Dicembre 2005
  27. 27. _]rl'&l User Group Sui‘(le(_; i 'Olllll. J r, i_. ll “teIaio" della MIDlet public class llobiletiloballileather extends MIDlet implements Commandtistener, Runnable { private Display display; private Form cityForm; private TextField cityField; private Command querycommand; private Command backcommand; private TextBox cityResult; private Form loadingDialog; private GloballrleatherSoap_Stub stub; public MobileGlobalWeather() { in: i.t( ) ; } Stefano Sanna, Web Sen-‘ices (2 dispositivijai'a ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 Divombre 2005
  28. 28. _]. i'u User Group Sni'(le(_; ii. a Oiilus v. ".‘¢‘. ‘. ‘| l,lI: l', -C 29': -.1 L l _. lnizializzazione private void init() { / / creazione della GUI. . . display = Display. getDisplay(this); cityForm = new Form( "MobileGlobalweather") ; cityForm. setCommandListener(this); stub = new GloballnleatherSoap_Stub(); M Stefano Sanna, Web Sen-‘ices (2 dispositivijai'a ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 Divombre 2005
  29. 29. _]. i'u User Group Sni'(le(_; ii. a Oiilu. V. ’ W ‘. ‘. _| U I] C Ci l (1 >32 9 "- Cl C l’ :2 Gestione degli eventi public void commandAction(Command c, Displayable d) { if (c = = querycommandl { display. setcurrent(loadingDialog); new Thread(this) . start( ) ; } else if (c = = backcommand) { display. setCurrent(cityForm); Stefano Sanna, Web Sen-‘ices (2 dispositivijai'a ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 Divombre 2005
  30. 30. _]. in User Group Seirile W 2'4 _i Ll i_i lnvocazione remota public void run() { try { String result = stub. getHeather(cityField. getString( ) , niltalyn): c1tyResult. :l. osert(result, 0) ; } catch(RemoteException re) { cityResult. :i. osert("Errore invocazione remotal", 0); } finally { display. setCurrent(cityResult) ; } Stefano Sanna, Web Sen'iL. 'os e dispo_sitii'ijava ME 2' Meeting Java Mobile Developers Forum_. Roma, O2 Divombre 2AZ()05
  31. 31. 1;‘ : . ‘I O 'i‘. uII Is it Oltlo Ilse Airtime ? i'40b<| tC| Ob': l""/ eiilllcrmishli in send and receive data using the netwzmc. This will use suit in charges. Aairiimc and may re ‘is IT C-li. to use airtime? M . .,. . W M b M G k mfl M
  32. 32. T: .155; Java User Group Sardegna Onlus www. jugsardegna. org , Sarpresa ‘UK magnum. a-i‘. ‘PI"i ' Vii-‘H0 ’-I71. Stefano Sanna, Web Services 9 djsposjtjs-'ijava ME 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005 32
  33. 33. _].1'n Uswr Crmlp Sm'(iu(_; r1.a Onln V. ’ W ‘. ‘. _| U I] C in (1 >32 9 "- .3 C V’ :2 La response é XML! <? xm1 version= "1.0" encoding= "utf-16"? > <Currentweather> <Location>Cag1iari/ Elmas, Italy 39-15N 009-04E SM</ Location> <Time>Sep 29, 2005 - 04:45 PM EDT / 2005.09.29 2045 UTC</ Time> <wind> from the NW (310 degrees) at 10 MPH (9 KT) :0</ wind> <Visibi1ity> greater than 7 mi1e(s) :0</ Visibi1ity> <SkyCondit: '.ons> mostly c1oudy</ SkyConditions> <Temperature> 68 F (20 C)</ Temperature> <DewPoint> 62 F (17 C)</ DewPoint> <Re1ativeHumidity> 829s</ Re1ativeHumidity> <Pressure> 30.12 in. Hg (1020 hPa)</ Pressure> <Status>Success</ Status> </ Currentlvleather> Stefano Sanna, H/ ('b Sen-‘Ices (2 d1'sp0s1t1‘v1'javu ME 2' M(3ct. ing Java Mobile Developers Forum, Roma, O2 Div¢: n1brc3 2005
  34. 34. _]. irn llH(‘l‘ Crmip S'. n‘(luqrm Onlu. V. ’ W '. ‘. _| U I] C in C if Q "i .3 C l’ :2 lnvocazioni sincrone - WSA genera chiamate sincrone: assicurarsi che queste siano gestite a| |'interno di Thread separati dalle routine di gestione della GUI - Non tutti gli esempi reperibili in rete (o generati automaticamente dai tool. ..) tengono in considerazione questo aspetto. .. Stefano Sanna, Web Sent-‘me. -5 (2 d1sp0s1"t1‘v1'_/ ova AVE 2' Meeting Java Mobile Developers Forum, Roma, O2 Dl(, ‘(}I'lll)F(, ‘ 2005
  35. 35. www. jugsardegna. org ,1; -_ A ; _II: .l. . ".0 U. " ' . Java User Group Sardegna Onlus _ 2 E a Stefano Sanna, Web Services e dispositivijava ME 35 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  36. 36. lnvocazioni su Thread separato class StartEngineTask implements Runnable { public void run() { stub. startEngine(); if (c = = invokecommand) { new Thread(startEngineTask) . start(}; Stefano Sanna, Web Sen-‘ices e dispositivijavu ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 l')ivon1bre 2005
  37. 37. Java User Group Sardegna Onlus wwI. v.jugsardegna. org V 7 3 d. isp, nsi 'ivi Stefano Sanna, Web Services e dispositivijava ME 2' Meeting Java Mobile Developers Forum, Roma, 02 Dieembre 2005
  38. 38. 5 0 0 2 e M m mm tr 12 W0 . .aa, /m 70 ¢‘R 0. nu , om Wm rum em 56 £0. clo /5 3 case bk In! /m a, .a n. v n. .a 3] 50, Om Hm be MM 52
  39. 39. wwI. v.jugsardegna. org ; '_ -_ A 3 _II: .l. . ".0 I/ ~ . Java User Group Sardegna Onlus _ espacl 7 i Ila Stefano Sanna, Web Services e dispositivijava ME 39 2' Meeting Java Mobile Developers Forum, Roma, 02 Dieembre 2005
  40. 40. _]rlr’iI Ilsei‘ Group S. ii‘ilugii. I Oiilus w'. ‘J'. ‘. _| I_Ig': Cir’(It: ‘(_i"I. :1 CI} Uso delle librerie di un SDK - Come soluzione temporanea, si puo: — Prendere i| J'ar file relativo alla implementazione de| |_a WSA I un emulatqre/ SDK (ad esem_ I0, J2me- _Ivys. J|a|1(rta)a| |'Interno della directory lIb/ del Ireless 00 I — Disabilitare il supporto Web Services a| |'interno de| |'ambIente dl sviluppo — lmportare il fi| _e jar_ come Iibreria esterna (da includere nel Jar di deployment) — Utilizzare _un obfuscator per eliminare i nomi dei package riservati - IMPORTANTE: questa tecnica puo essere utilizza a scopo di test, in quando il riuso di porzioni degli SDK non é consentito. Stefano Sanna, Web Services (2 disposiiivijuva ME 2' Meeting Java Mobile Developers Forum, Roma, O2 Diirenibre 2005
  41. 41. _]rl1’il Ilsei‘ Cmiip S'. Ii‘ilI! giI. I OIIIII. w'. ‘J'. ‘. _| I_Ig': Cir’(It: ‘(_i"I. :I " Mirae: un aiuto da Apache - Mirae é una implementazione open source della JSR 172 appartenente a| |'Apache Web Services Project - Sorgente e documentazione sono disponibiliz - Sito ufficiale: http: //ws. apache. orglmirael — Repository sorgente: https: //svn. apache. org/ repos/ asf/ webservices/ mirae - Utilizzando Mirae é possibile includere la WSA a| l'interno di device non aggiornati Stefano Sanna, Web Services (2 disposiiivijuva ME 2' Meeting Java Mobile Developers Forum, Roma, O2 Diirenibre 2005
  42. 42. _]rl1’il Ilsei‘ Cmiip S'. Ii‘ilI! giI. I OIII w'. ‘J'. ‘. _| I_Ig': Cir’(It: ‘(_i"I. :1 CI Mirae: piccoli ritocchi. .. - Per poter utilizzare Mirae a| |'interno di una applicazione Java ME é necessario: - lncludere il sorgente in un progetto (vedi filesystem) — Attivare la compatibilita CLDC 1.1 - Cancellare le classi Mai| Agent e OperationMail dal package org. apache. mirae. ws — Aggiungere alla classe Namespaceconstants del package javax. xm| .rpc il field: ubli tatic final trin N PREFIX - Nota: non e supportato l'encoding UTF-16, per cui il servizio Globalweather non é accessibile Stefano Sanna, Web Services (2 disposiiivijuva ME 2' Meeting Java Mobile Developers Forum, Roma, O2 Diirenibre 2005
  43. 43. _]rlTil Usei‘ Cmiip S'. Ii‘(lui; iI. I Oiilus V. ’ W '. ‘. I Li I] C {I l C If (:1 "I ii I: I’ :2 Un semplice web service di test 2 - Per testare questa WSA artigianale é stato predisposto un semplice web service d'esempio, pubblicato su un server domestico ed é raggiungibile a| |'indirizzo: http: //gerdavax. dyndns. org:8080/axis/ services/ ciao Ringrazio Nicola Mura per il supporto. .. aI1'inseguimento dei] ‘encoding! Stefano Sanna, Web Services (2 disp0sitivi_/ ova IVE 2' Meeting Java Mobile Developers Forum, Roma, O2 l')icenibre 2005
  44. 44. _]rl'ii User Cmiip SiIi‘(lu(_; ii. I Oiiliis "7 V. ".‘¢‘. ‘. : |l, lI: lfC 2f_. "I. .I I, I_. , , L'interfaccia dello stub package org. jugsardegna. mobile. ws. hello. stub; import java. rmi. *; public interface Ciao extends Remote { public String saluto(String nome) throws RemoteException; Stefano Sanna, l1‘l/ vb Services (2 dispositivijaI’u ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 Divombre 2005
  45. 45. _]. I: eI User Cmiip SiIi‘(lu(_; iI. I Onlus V. ’ W '. ‘. I (I I] C {I I If! I2 9 "1 CI I: I’ :2 He| loWSWor| d: il “te| aio" public class Hellowsworld extends MIDlet implements CommandListener, Runnable { private Display display; private Form gui; private TextField nameField; private Command sayHelloCommand; private Ciao stub; public He1l0WSWor1d() { init( ) ; } Stefano Sanna, Web Services (2 disposilivijavu .1IE 2' Meeting java Mobile Developers Forum, Roma, O2 Dicenibre 2005
  46. 46. _]rl'ii User Group SiIi'IluI_; ii. I OIIIII. V. ’ W ‘. ‘. _| Ll I] 5 CI I If: >32 9 "1 CI I: I’ :2 lnizializzazione private void init() { display = Display. getDisplay(this); gui = new Form( "HellowSworld ! " ) ; nameField = new TextField("Name: " , " " , 20, TextField. ANY); gui. append(nameField); gui. addCommand(sayHelloCommand); gui. setCommandListener(this); stub = new Ciao_Stub(); T Stefano Sanna, l1‘l/ vb Services (2 dispositivijaI’u ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 Divombre 2005
  47. 47. _]rl'ii User Croiip SiIi‘(lu(_iii. I Oiiliis "7 ’. ".'J‘-‘. ‘| l.ll: lfC : ‘f_i'I-Cl l, l :2 , , Gestione degli eventi public void commandAction(Command c, Displayable d) { if (c = = sayHelloCommand) { new Thread(this) . start(); Stefano Sanna, l1‘l/ vb Services (2 dispositivijaI’u ME 2' Meeting Java Mobile Developers Forum, Roma, ()2 Divombre 2005
  48. 48. _]. an Us<‘I‘(7I‘()I1[)§nI‘(iuqr1.a(")H| Hs V. ’ '. ‘w _y L: 1] C C _ , I _. lnvocazione remota public void run() { String result = ""; AlertType type = AlertType. INFO; try { result - stub. saluto(naneField. getString()); } catch(RernoteException re) { result = "Errore invocazione remota! "; type = AlertType. ERROR; } finally { Alert pop = new Alert("Result" , result, null, type) ; pop. setTimeout(Alert. FOREVER); display. setCurrent(pop, gui); } Stefano Sanna, Web Sen'1L. 'os 0 d1'spu_~'1’t1‘v1'javu ME 2' Mmmng Java Mobile Developer's Forum, Roma, O2 Dim: n1bre 2005
  49. 49. www. jugsardegna. org , *_ -_ A ; _Jt: .l. , . ".0 U. " ' . Java User Group Sardegna Onlus _ H M be eel Stefano Sanna, Web Services 9 disposjtjwjava ME 49 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  50. 50. Java User Group Sardegna Onlus www. jugsardegna. org 9__Ji: lZ '7:V V A V, %'(m7|¥“nS*= T,jf3Vft1=1"? lT51=15;limfxmlA-iillfililihfiuil"l‘ZQl1§Xi$li'ISdd! P.f'OViflElY§fi”aV3i"3 me§“sciau“ p, rni: :i. d‘er= i"; ;i. ,aiia*: BPEE‘ as,3;1il; e“= "ld‘n. cumenti“ <piaiiameteLrl n. ame; =‘"= aL'I§nwedPIethn'ds“ llvi'ei1ue: -:, '!; is. a]; u1:ix<i", ;€: Stefano Sanna, Web Services 9 dispositivijava ME 50 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  51. 51. Java User Group Sardegna Onlus www. jugsardegna. org ff: ?; . .’_V . _ ‘V 5‘ ‘K . i_ , _ . .-IE»? 1'fll3‘ll‘lf£. =7v'; §a]. f'_L'lil. "l§"“Vl i[fi§fllE= l'6§, EtNS§: ,,§E1fiffi? ' G‘ ~<, iD. f}V, ,3iE. l., '.faLf£iI, .t, !fl.1.fi-i »-sparameter nanesfiattmvefifiefhudsr m§lue= ?‘i‘s53TQfn*?3i azjlservicaii - i§VIid, ep1oynen*Eav Stefano Sanna, Web Services 9 dispositivijava ME 5 1 2' Meeting Java Mobile Developers Forum, Roma, 02 Dicembre 2005
  52. 52. _]. irn Ilsei‘ Group S'rll'(l(! t}llri Onlu. viw Jugcarce: -g'n. :i r Dopo la WSA - ll Java Community Process prosegue: — JSR 279: Service Connection API forJavaME - Introduce maggiore astrazione ris ettq al server provider vero e prop_rIo, Includen 0 le interfacce a| |'interno del Generic Connection Framework — JSR 280: XML API forjava ME - API completa per la gestione di documenti XML - JSR 239-240: Mobile Service Architecture for CLDC and CDC (web services per tutti? ) Stefano Sanna, Web Servicres e disposiiivijuvu ME 2' Meeting Java Mobile Developers Forum, Roma, 0?. Dicembre 2005
  53. 53. _]rl/ il User‘ Group S'. ii‘(leg; iiii On V. ’ W ‘. ‘. ] U Q '3 Ci (O (‘Q "I .21 Conclusioni - La Web Services API introduce nel mondojava ME una interfaccia standard per l'e| aborazione di documenti XML e l'invocazione remota di procedure attraverso infrastruttura web services - II supporto a WS-I Basic Profile limita | 'interoperabi| ita con molti servizi esistenti ma garantisce compatibilita e riusabilita con quelli futuri - I dispositivi WSA-compatibili sono ormai arrivati! Per quelli meno recenti é possibile utilizzare Mirae e scrivere servizi con codifica UTF-8 Stefano Sanna, Web Services e c1isposi"(ivijui. *a ME 2' Meeting _]ava lVlobile Developers Forum, Roma, 0?. Diifembre 2005
  54. 54. _]rl7&l llsei‘ Group Silllllitlllrl Oiiliis viw _ii_ig: aice: -g'n. :i cif: Bibliografia - Un esempio de| |'uso di JAXP e contenuto nel seminario del JIP 2005 ed e reperibile sul sito di java Italian Portal (http: //www. javaporta| .it) - JSR 172: JZME Web Services Specification — ava C_ommunity_Process_ _ ttp: //icp. org/ en/ isr/ detaiI? id=172 - Web Services APIs forJ2ME C. Enrique Ortiz, IBM Developerworks — _http: //www-128.ibm. com/ developerworks/ Iibrary/ wi- isr e successivi Stefano Sanna, Web Servicres e dispositivijava ME 2' Meeting Java Mobile Developers Forum, Roma, 0?. Dicembre 2005
  55. 55. _]. i: ei User Group Siii‘ile(_iii. i Oiiliis V. ’ W '. ‘. _| U i] C CH C if g "- Cl C l’ :1 Bibliografia - La piattaforma JZME e i Web Services — Massimo Carli Mokabyte n. 94 e 96 http: //www. mokabyte. it - La Web Services API di J2ME — Emanuela De Vita, Stefano Sanna Speciale Programmazione Mobile Computer Programming 150, G. E. lnfomedia Stefano Sanna, Web Services (2 disposi(ivijai’a iIE 2' Meeting java Mobile Developers Forum, Roma, O2 l')icen1bre 2005
  56. 56. Stefano San 2' Meeting Java Grazie per _l'attenzione : -) I '4 l “* Farmer Clem meets the 21st C by | umix200-1 http: //www. sxc. hu/ browse, ph(ml? f= pro1lIe&I = Iumix2004 bSe ile Developers Foru , 02 Dicembre 2005
  57. 57. _]rl'i1lfS(‘l‘(_ll'()ll[)Sill'(l(l(]l V. ’ i. A o C Web Services e dispositivi Java ME ) (versione 1.1) l l e garantito il permesso di copiare, distribuire elo modificare questo documento seguendo i (C) 2005 Stefano Sanna (gerdavax@tIscaI| .lt) termini della Llcenza per Documentazlone Llbera GNU. versione 1.1 o ognl versione successlva pubbllcata dalla Free Software Foundation. Una copla della Ilcenza In llngua italiana é disponibile presso: nttp: IIwww. softwareIlbero. It/ gnudoc/ fdI. It. I-otml l Reallzzato In amblente Llnux con Openofflce 2.0 ‘Tutti i marchi commerciali‘ sono di pmprieta dei‘ rispettivi titolan‘ e sono stati citati in questa presentazione (a solo scopo mustrativo. Stefano Sanna, Web Sen-‘ices e dispositivijai'a ME 2' l . ing Java Mobile Developers Forum, Roma, ()2 Di ‘

×