Sto insegnando a me stesso le tecnologie J2EE che usano Glassfish come mio server web e contenitore EJB. Sono molto interessato all'apprendimento di REST e allo sviluppo di un'applicazione conforme alle regole di REST.
Il mio primo progetto è scrivere un client di chat. L'utente andrà a una pagina Web, scaricherà una pagina Web con il javascript per eseguire il client di chat (che invia i dati al server e ne recupera anche). Le chiamate per inviare dati e per recuperare i dati dal server web avverranno tramite un'interfaccia RESTful. In questo momento l'ho fatto tramite servlet che ascoltano gli / URI di chatroom / getMessages e / chatroom / postMessage.
La ruga in cui mi imbatto quando provo a convertirlo in un servizio RESTful usando JAX-RS che non usa servlet è che mi sembra di reinventare la ruota. Con le specifiche del servlet avevo questo oggetto HTTPSession che rendeva molto facile tenere traccia di dove qualcuno si trova nel buffer della chat (e quindi quali messaggi dovrebbero essere inviati a loro quando visitano / chatroom / getMessages). Ma ora quando lo faccio completamente RESTful, e uso solo POJOs con JAX-RS (che in realtà mi piace di più dal punto di vista dello stile) ora devo reinventare lo stato della sessione se lo voglio consegnando alla persona un token, e avendoli mano ogni volta che parliamo proprio come il cookie di sessione generato automaticamente avrebbe fatto per me se stavo usando i servlet.
PERCHÉ dovrei implementarlo con JAX-RS e abbandonare i servlet? Non ho visto alcun tutorial JAX-RS che mescoli servlet e JAX-RS (probabilmente per una buona ragione), quindi questa non sembra essere un'opzione. Quello che voglio davvero sapere è quali ragioni convincenti ci sono per andare con REST. Che cosa mi compri per non usare solo i servlet in modo RESTful?