- Intercepts WebSocket lifecycle events onOpen onClose onError MessageHandler - Handles all incoming messages for an Endpoint RemoteEndpoint - Represents the 'other end' of this conversation Session - represent the active conversation
text and binary messages As complete messages As sequence of partial messages Using traditional blocking I/O Send or receive WebSocket messages as any Java object Using pluggable encoder/decoder components Encoders and decoders for Java primitives built in Send messages synchronously or asynchronously
JSON Low-level, efficient way to parse/generate JSON Similar to StAX API in XML world Object model API to represent JSON Simple, easy to use high-level API Similar to DOM API in XML world
@ R e s o u r c e ( l o o k u p = " j m s / m y C o n n e c t i o n F a c t o r y " ) C o n n e c t i o n F a c t o r y c o n n e c t i o n F a c t o r y ; @ R e s o u r c e ( l o o k u p = " j m s / m y Q u e u e " ) Q u e u e m y Q u e u e ; p u b l i c v o i d s e n d M e s s a g e ( S t r i n g p a y l o a d ) { C o n n e c t i o n c o n n e c t i o n = n u l l ; t r y { c o n n e c t i o n = c o n n e c t i o n F a c t o r y . c r e a t e C o n n e c t i o n ) ; S e s s i o n s e s s i o n = c o n n e c t i o n . c r e a t e S e s s i o n ( f a l s e , S e s s i o n . A U T O _ A C K N O W L E D G E ) ; M e s s a g e P r o d u c e r m e s s a g e P r o d u c e r = s e s s i o n . c r e a t e P r o d u c e r ( m y Q u e u e ) ; T e x t M e s s a g e t e x t M e s s a g e = s e s s i o n . c r e a t e T e x t M e s s a g e ( p a y l o a d ) ; m e s s a g e P r o d u c e r . s e n d ( t e x t M e s s a g e ) ; } c a t c h ( J M S E x c e p t i o n e x ) { / / . . . } f i n a l l y { i f ( c o n n e c t i o n ! = n u l l ) { t r y { c o n n e c t i o n . c l o s e ( ) ; } c a t c h ( J M S E x c e p t i o n e x ) { / * . . . * / } } } }
@ R e s o u r c e ( l o o k u p = " j m s / m y C o n n e c t i o n F a c t o r y " ) C o n n e c t i o n F a c t o r y c o n n e c t i o n F a c t o r y ; @ R e s o u r c e ( l o o k u p = " j m s / m y Q u e u e " ) Q u e u e m y Q u e u e ; p u b l i c v o i d s e n d M e s s a g e ( S t r i n g p a y l o a d ) { t r y ( J M S C o n t e x t c o n t e x t = c o n n e c t i o n F a c t o r y . c r e a t e C o n t e x t ( ) ; ) { c o n t e x t . c r e a t e P r o d u c e r ( ) . s e n d ( m y Q u e u e , p a y l o a d ) ; } }
and DI @ I n j e c t @ J M S C o n n e c t i o n F a c t o r y ( l o o k u p = " j m s / m y C o n n e c t i o n F a c t o r y " ) J M S C o n t e x t c o n t e x t ; @ R e s o u r c e ( l o o k u p = " j m s / m y Q u e u e " ) Q u e u e m y Q u e u e ; p u b l i c v o i d s e n d M e s s a g e ( S t r i n g p a y l o a d ) { c o n t e x t . c r e a t e P r o d u c e r ( ) . s e n d ( m y Q u e u e , p a y l o a d ) ; }
s S o m e B e a n { @ R e s o u r c e / * ( n a m e = " j a v a : c o m p / D e f a u l t M a n a g e d E x e c u t o r S e r v i c e " ) * / M a n a g e d E x e c u t o r S e r v i c e e x e c u t o r ; p u b l i c v o i d e x e c u t e ( ) { F u t u r e < S t r i n g > r e s u l t = e x e c u t o r . s u b m i t ( n e w C a l l a b l e < S t r i n g > ( ) { / / c a l l a b l e i m p l e m e n t a t i o n h e r e } ) ; / / d o s o m e t h i n g e l s e } }
the Batch Runtime Defines operations to act on jobs Start, stop, restart, job repository retrieval "The" interface for applications to interact with jobs