SlideShare a Scribd company logo
1 of 42
Download to read offline
Spring Web Services:

   SOAP vs. REST

     Sam
Brannen

    Swi+mind
GmbH

Speaker
Profile

•  Senior
So+ware
Consultant
–
Swi+mind
GmbH

•  Java
developer
with
13+
years'
experience

•  Spring
Framework
Core
Developer

  –  Author
of
the
Spring
TestContext
Framework


•  Previous
SpringSource
dm
Server™
developer

•  Regular
speaker
at
conferences
on
Spring,
dm

   Server,
Java,
OSGi,
and
tesOng

•  Lead
author
of
Spring
in
a
Nutshell;

   chief
technical
reviewer
for
Spring
Recipes

Agenda

•    Web
Services
Concepts

•    Spring
Events
ApplicaOon

•    Spring‐WS

•    Spring
REST

•    Server‐side

•    Client‐side

•    Q&A

Web
Services

Concepts

•  Client
/
Server
architecture
over
the
Web

  –  Server
exposes
Services

  –  Client
sends
a
Request
to
the
Server

     •  for
a
specific
exposed
Service

     •  with
a
Payload
to
be
processed
by
the
Service

  –  Service
processes
the
Request
and
returns
a

     Response

Marshalling
and
Unmarshalling

•  Marshalling:
Object

external
format

•  Unmarshalling:
external
format

Object

•  a
request
or
response
contains
a
payload

  –  o+en
in
the
form
of
an
XML
document

  –  may
also
be
binary,
JSON,
etc.

•  applicaOon
code
has
its
own
domain
model

  –  may
not
map
directly
to
format
of
payload

Spring
Events
Applica?on

Introducing
Spring
Events

•  Simple
POJO
domain
model:
Event

•  TransacOonal
service
layer

•  Hibernate
repository
layer

  –  With
an
in‐memory
HSQL
database

•  Spring
@MVC
presentaOon
layer

  –  RESTful
@Controller

•  Spring‐WS
@Endpoint

Demo

Spring
Events
ApplicaOon

SOAP
Web
Services

What
is
Spring‐WS?

Spring
Web
Services
aims
to
facilitate

contract‐first
SOAP
service
development,

allowing
for
the
creaAon
of
flexible
web

services
using
one
of
the
many
ways
to

manipulate
XML
payloads.

(Spring‐WS
Web
site)

What
is
SOAP?

•  Simple
Object
Access
Protocol

   –  Protocol
for
exchanging
informaOon
via
Web

      Services

   –  Uses
XML
as
its
message
format

   –  Typically
over
HTTP

•  Structure

   –  Envelope

   –  Header

   –  Body
(a.k.a.,
payload)

   –  Document
literal

Contract
Last

•  Define
API
in
programming
language
(e.g.,
Java)

•  Use
tools
to
generate
XSDs
and
WSDL
from
code

•  Pros

   –  easy,
no‐brainer
for
developers

•  Cons

   –  horribly
fragile

   –  any
change
to
code
breaks
previously
published

      contract

   –  clients
must
be
updated

Contract
First

•  Define
public
API
to
services
via
XSD
schemas

   first

  –  one
request
and
response
per
exposed
service

  –  generate
WSDL
from
XSDs
using
convenOons
for

     port
types,
etc.

     •  potenOally
auto‐generated

  –  generate
Java
code
from
XSDs
(e.g.,
JAXB2)

  –  create
Java
mapping
code
manually

  –  or
use
XPath,
etc.
to
parse
XML
directly

REST
Web
Services

What
is
Spring
REST?

•  RESTful
Web
Services
built
on
top
of
Spring

   @MVC

•  Combines
nicely
with
exisOng
@MVC
code

•  Low
learning
curve
for
developers
familiar

   with
Spring
@MVC

•  Supports
mulOple
marshalling
technologies

   suitable
for
web
applicaOons
(e.g.,
JSON)

•  Spring
REST
!=
JAX‐RS

What
is
REST?

•  REpresentaOonal
State
Transfer

•  HTTP
Protocol

  –  Standard

  –  Ubiquitous

  –  Scalable

•  Stateless

•  Focuses
on
resources

  –  Nouns
and
Verbs

Nouns,
Verbs,
&
Errors

•  Nouns

   –  Resources
that
you
want
to
interact
with

•  Verbs

   –  What
you
can
do
with
a
resource

      •  POST:
create
new
resource

      •  GET:
get
single
resource
or
a
list
of
resources

      •  PUT:
update
resource

      •  DELETE:
delete
resource

•  Error
handling

   –  Standard
HTTP
response
codes

RESTful
URLs

•  POST

  –  hip://example.com/events

•  GET

  –  hip://example.com/events

  –  hip://example.com/events/1

•  PUT

  –  hip://example.com/events/1

•  DELETE

  –  hip://example.com/events/1

Server‐side

Spring‐WS
on
the
Server

•  Bootstrapped
in
web.xml
with

   MessageDispatcherServlet

•  <sws:annotaOon‐driven
/>
enables

   @Endpoint
mappings
(a
la
@Controller)

•  @PayloadRoot
maps
handler
methods

•  @RequestPayload
maps
payload
to
method

   parameter

•  @ResponsePayload
maps
return
value
to

   response
payload

GetEventEndpoint
(1/2)

@Endpoint	
public class GetEventEndpoint {	

  private static final String NAMESPACE_URI =	
   "http://example.com/schemas";	

  private final EventService eventService;	

 @Autowired	
 public GetEventEndpoint(EventService eventService) {	
    this.eventService = eventService;	
 }
GetEventEndpoint
(2/2)

@PayloadRoot(localPart="GetEventRequest",	
  namespace=NAMESPACE_URI)	
@ResponsePayload	
public GetEventResponse getEvent(	
  @RequestPayload GetEventRequest request)	
      throws Exception {	

     Event event = 	
       eventService.findById(request.getId().longValue());	

     return toGetEventResponse(event);	
}

Spring
REST
on
the
Server

•  REST
Web
Service
endpoints
are

   @Controllers

  –  @RequestMapping:
maps
to
handler
methods

  –  @RequestBody:
payload
of
request

  –  @ResponseBody:
payload
of
response

  –  @ResponseStatus:
set
HTTP
response
code

  –  @PathVariable
and
UriTemplate

     •  For
mapping
and
creaOng
RESTful
URIs

•  AutomaOc
marshalling
of
payloads

•  Content
negoOaOon

EventController
(1/4)

@RequestMapping("/events")	
@Controller	
public class EventController {	

  protected final EventService eventService;	

 @Autowired	
 public EventController(EventService eventService) {	
    this.eventService = eventService;	
 }
EventController
(2/4)

@RequestMapping(method = GET)	
@ResponseBody	
public List<Event> retrieveAllEvents() {	
   return eventService.findAllEvents();	
}	

@RequestMapping(value = "/{id}", method = GET)	
@ResponseBody	
public Event retrieveEvent(@PathVariable Long id) {	
   return eventService.findById(id);	
}

EventController
(3/4)

@RequestMapping(method = POST)	
@ResponseStatus(HttpStatus.CREATED)	
public void createEvent(@RequestBody Event postedEvent,	
    HttpServletRequest request,	
    HttpServletResponse response) {	

     Event savedEvent = eventService.save(postedEvent);	

     String newLocation =	
       buildNewLocation(request, savedEvent.getId());	

     response.setHeader("Location", newLocation);	
}

EventController
(4/4)

@RequestMapping(value = "/{id}", method = DELETE)	
@ResponseStatus(HttpStatus.NO_CONTENT)	
public void deleteEvent(@PathVariable Long id) {	
   eventService.deleteById(id);	
}	

private String buildNewLocation(HttpServletRequest request, 	
    Long id) {	

     String url = request.getRequestURL()	
       .append("/{id}").toString();	

     UriTemplate uriTemplate = new UriTemplate(url);	
     return uriTemplate.expand(id).toASCIIString();	
}

HiddenHipMethodFilter

•  Web
browsers
typically
only
support
GET
and
POST

•  HiddenHipMethodFilter

   –  provides
support
for
PUT
and
DELETE
requests

      from
web
browsers

   –  transparently
converts
POST
requests
with

      hidden
_method
parameter

•  Configured
in
web.xml

•  Can
be
used
in
conjuncOon
with
Spring’s
JSP

   form
tag
library

URI
Templates
in
JSPs

•  Use
the
<spring>
tag
library
to
construct
dynamic

   URI
templates
in
JSPs

•  Similar
to
the
JSP
core
tag
library
support
for

   building
URLs
with
parameters


<spring:url
var="jsonUrl"
value="/rest/events/{id}">

  
<spring:param
name="id"
value="${event.id}"
/>

</spring:url>

Client‐side

WebServiceTemplate

•  Interact
with
SOAP
Web
Services
as
a
client

•  Supports
callbacks
as
well
as
automaOc

   marshalling
and
unmarshalling
of
payloads

  –  sendAndReceive(…)

  –  marshalSendAndReceive(…)

  –  etc.

EventsSoapClientTest
(1/2)

@RunWith(SpringJUnit4ClassRunner.class)	
@ContextConfiguration	
public class EventsSoapClientTest {	

  @Autowired	
  private WebServiceTemplate webServiceTemplate;	

<oxm:jaxb2-marshaller id="marshaller”	
  contextPath="com.swiftmind.samples.events.web.schema" />	

<bean id="webServiceTemplate" 	
 class="org.springframework.ws.client.core.WebServiceTemplate”	
 p:marshaller-ref="marshaller" p:unmarshaller-ref="marshaller" />
EventsSoapClientTest
(2/2)

@Test	
public void getEventRequest() {	

 String url = "http://localhost:8080/spring/soap";	

 GetEventRequest request = new GetEventRequest();	
 request.setId(BigInteger.valueOf(5L));	

  GetEventResponse response = (GetEventResponse) 	
    webServiceTemplate.marshalSendAndReceive(url, request);	

 assertNotNull(response);	
 assertEquals("Spring I/O in Madrid", 	
    response.getEventData().getDescription());	
 }

RestTemplate

•  Interact
with
any
REST
Web
Services

  –  not
limited
to
Spring
REST
services

•  Supports
URI
templates
and
automaOc

   marshalling
and
unmarshalling
of
payloads

  –  postForLocaOon(…)

  –  postForObject(…)

  –  getForObject(…)

  –  delete(…)

  –  put(…)

  –  etc.

EventsRestClient
(1/3)

public class EventsRestClient {	

  private final RestTemplate restTemplate =	
    new RestTemplate();	
  private String url;	

  public URI createEvent(String name) {	
    Event event = new Event();	
    event.setName(name);	

      return restTemplate.postForLocation(url, event);	
 }
EventsRestClient
(2/3)

public void deleteEventByLocation(URI location) {	
   restTemplate.delete(location);	
}	

public void deleteEventById(Long id) {	
  String deletionUrl = url + "/{id}";	

     restTemplate.delete(deletionUrl, id);	
}

EventsRestClient
(3/3)

public void retrieveEvent(URI location) {	
   Event event = restTemplate.getForObject(location, 	
     Event.class);	
}	

public void retrieveAllEvents() {	
   Event[] events = restTemplate.getForObject(url, 	
     Event[].class);	
}

Demo

Spring
SOAP
Web
Services

Demo

Spring
REST
Web
Services

Further
Resources

•  Spring
Framework

  –  Including
Spring
REST

  –  hip://springframework.org

•  Spring‐WS

  –  hip://staOc.springsource.org/spring‐ws/sites/2.0/

•  Generate
XSD
from
XML

  –  hip://bit.ly/fLI1Bt

Q&A



Sam
Brannen


sam.brannen
[at]
swi+mind
[dot]
com


hip://www.swi+mind.com


hip://twiier.com/sam_brannen


“Spring
in
a
Nutshell”
       hip://oreilly.com/catalog/9780596801946

      available
from
O’Reilly
in
2011


More Related Content

What's hot

Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service designRamin Orujov
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkHùng Nguyễn Huy
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
 
Simple Object Access Protocol
Simple Object Access ProtocolSimple Object Access Protocol
Simple Object Access ProtocolSaatviga Sudhahar
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developersPatrick Savalle
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webserviceDong Ngoc
 
Rest presentation
Rest  presentationRest  presentation
Rest presentationsrividhyau
 
Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015johannes_fiala
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented ArchitectureLuqman Shareef
 

What's hot (20)

Soap vs rest
Soap vs restSoap vs rest
Soap vs rest
 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service design
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Simple object access protocol(soap )
Simple object access protocol(soap )Simple object access protocol(soap )
Simple object access protocol(soap )
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
 
Simple Object Access Protocol
Simple Object Access ProtocolSimple Object Access Protocol
Simple Object Access Protocol
 
Json Web Token - JWT
Json Web Token - JWTJson Web Token - JWT
Json Web Token - JWT
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developers
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Spring Security
Spring SecuritySpring Security
Spring Security
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Rest API
Rest APIRest API
Rest API
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
 
Rest presentation
Rest  presentationRest  presentation
Rest presentation
 
Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015
 
What is an API
What is an APIWhat is an API
What is an API
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
IdP, SAML, OAuth
IdP, SAML, OAuthIdP, SAML, OAuth
IdP, SAML, OAuth
 

Viewers also liked

Soap vs. rest - which is right web service protocol for your need?
Soap vs. rest -  which is right web service protocol for your need?Soap vs. rest -  which is right web service protocol for your need?
Soap vs. rest - which is right web service protocol for your need?Vijay Prasad Gupta
 
Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTPradeep Kumar
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with SpringJoshua Long
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVCIndicThreads
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web ServicesAngelin R
 
Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Sam Brannen
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical ApproachMadhaiyan Muthu
 
Microservices with Spring Boot
Microservices with Spring BootMicroservices with Spring Boot
Microservices with Spring BootJoshua Long
 
RESTful Web Services with Spring MVC
RESTful Web Services with Spring MVCRESTful Web Services with Spring MVC
RESTful Web Services with Spring MVCdigitalsonic
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentationguest0df6b0
 
Testing web services
Testing web servicesTesting web services
Testing web servicesTaras Lytvyn
 
Rest vs soap
Rest vs soapRest vs soap
Rest vs soapNaseers
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCVortexbird
 
My ridiculous productivity secret (i'm using it now)
My ridiculous productivity secret (i'm using it now)My ridiculous productivity secret (i'm using it now)
My ridiculous productivity secret (i'm using it now)Ye Win
 
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentUnderstanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentCharles Knight
 
Scalable Reliable Secure REST
Scalable Reliable Secure RESTScalable Reliable Secure REST
Scalable Reliable Secure RESTguestb2ed5f
 
Panduan microsoft exel 2007
Panduan microsoft exel 2007Panduan microsoft exel 2007
Panduan microsoft exel 2007Adre Ridwan
 

Viewers also liked (20)

REST vs. SOAP
REST vs. SOAPREST vs. SOAP
REST vs. SOAP
 
Soap vs. rest - which is right web service protocol for your need?
Soap vs. rest -  which is right web service protocol for your need?Soap vs. rest -  which is right web service protocol for your need?
Soap vs. rest - which is right web service protocol for your need?
 
Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and REST
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVC
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web Services
 
Spring Mvc Rest
Spring Mvc RestSpring Mvc Rest
Spring Mvc Rest
 
Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical Approach
 
Microservices with Spring Boot
Microservices with Spring BootMicroservices with Spring Boot
Microservices with Spring Boot
 
Web Services Tutorial
Web Services TutorialWeb Services Tutorial
Web Services Tutorial
 
RESTful Web Services with Spring MVC
RESTful Web Services with Spring MVCRESTful Web Services with Spring MVC
RESTful Web Services with Spring MVC
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
 
Testing web services
Testing web servicesTesting web services
Testing web services
 
Rest vs soap
Rest vs soapRest vs soap
Rest vs soap
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVC
 
My ridiculous productivity secret (i'm using it now)
My ridiculous productivity secret (i'm using it now)My ridiculous productivity secret (i'm using it now)
My ridiculous productivity secret (i'm using it now)
 
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentUnderstanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
 
Scalable Reliable Secure REST
Scalable Reliable Secure RESTScalable Reliable Secure REST
Scalable Reliable Secure REST
 
Panduan microsoft exel 2007
Panduan microsoft exel 2007Panduan microsoft exel 2007
Panduan microsoft exel 2007
 

Similar to Spring Web Services: SOAP vs. REST

Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jerseyb_kathir
 
nodejs_at_a_glance.ppt
nodejs_at_a_glance.pptnodejs_at_a_glance.ppt
nodejs_at_a_glance.pptWalaSidhom1
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasyJBug Italy
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
Node.js System: The Approach
Node.js System: The ApproachNode.js System: The Approach
Node.js System: The ApproachHaci Murat Yaman
 
Introduction to Ajax programming
Introduction to Ajax programmingIntroduction to Ajax programming
Introduction to Ajax programmingFulvio Corno
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serializationGWTcon
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with ExpressAaron Stannard
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)Kashif Imran
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applicationsTom Croucher
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with SpringJoshua Long
 
Ajax tutorial by bally chohan
Ajax tutorial by bally chohanAjax tutorial by bally chohan
Ajax tutorial by bally chohanWebVineet
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to TornadoGavin Roy
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC AnnotationsJordan Silva
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen LjuSkills Matter
 

Similar to Spring Web Services: SOAP vs. REST (20)

Intro to Node
Intro to NodeIntro to Node
Intro to Node
 
Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jersey
 
nodejs_at_a_glance.ppt
nodejs_at_a_glance.pptnodejs_at_a_glance.ppt
nodejs_at_a_glance.ppt
 
RESTEasy
RESTEasyRESTEasy
RESTEasy
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasy
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
Node.js System: The Approach
Node.js System: The ApproachNode.js System: The Approach
Node.js System: The Approach
 
Introduction to Ajax programming
Introduction to Ajax programmingIntroduction to Ajax programming
Introduction to Ajax programming
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with Express
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)
 
Spring 4 Web App
Spring 4 Web AppSpring 4 Web App
Spring 4 Web App
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 
08 ajax
08 ajax08 ajax
08 ajax
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
 
Ajax tutorial by bally chohan
Ajax tutorial by bally chohanAjax tutorial by bally chohan
Ajax tutorial by bally chohan
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to Tornado
 
Server Side Swift: Vapor
Server Side Swift: VaporServer Side Swift: Vapor
Server Side Swift: Vapor
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC Annotations
 
Primefaces Nextgen Lju
Primefaces Nextgen LjuPrimefaces Nextgen Lju
Primefaces Nextgen Lju
 

More from Sam Brannen

Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023Sam Brannen
 
Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022Sam Brannen
 
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019Sam Brannen
 
JUnit 5: What's New and What's Coming - Spring I/O 2019
JUnit 5: What's New and What's Coming - Spring I/O 2019JUnit 5: What's New and What's Coming - Spring I/O 2019
JUnit 5: What's New and What's Coming - Spring I/O 2019Sam Brannen
 
JUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVMJUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVMSam Brannen
 
Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2Sam Brannen
 
JUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondJUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondSam Brannen
 
Testing with Spring: An Introduction
Testing with Spring: An IntroductionTesting with Spring: An Introduction
Testing with Spring: An IntroductionSam Brannen
 
Testing with Spring 4.x
Testing with Spring 4.xTesting with Spring 4.x
Testing with Spring 4.xSam Brannen
 
Spring Framework 4.1
Spring Framework 4.1Spring Framework 4.1
Spring Framework 4.1Sam Brannen
 
Testing Spring MVC and REST Web Applications
Testing Spring MVC and REST Web ApplicationsTesting Spring MVC and REST Web Applications
Testing Spring MVC and REST Web ApplicationsSam Brannen
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with SpringSam Brannen
 
Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2Sam Brannen
 
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013Sam Brannen
 
Spring Framework 3.2 - What's New
Spring Framework 3.2 - What's NewSpring Framework 3.2 - What's New
Spring Framework 3.2 - What's NewSam Brannen
 
Spring 3.1 and MVC Testing Support - 4Developers
Spring 3.1 and MVC Testing Support - 4DevelopersSpring 3.1 and MVC Testing Support - 4Developers
Spring 3.1 and MVC Testing Support - 4DevelopersSam Brannen
 
Effective out-of-container Integration Testing - 4Developers
Effective out-of-container Integration Testing - 4DevelopersEffective out-of-container Integration Testing - 4Developers
Effective out-of-container Integration Testing - 4DevelopersSam Brannen
 
Spring 3.1 to 3.2 in a Nutshell - SDC2012
Spring 3.1 to 3.2 in a Nutshell - SDC2012Spring 3.1 to 3.2 in a Nutshell - SDC2012
Spring 3.1 to 3.2 in a Nutshell - SDC2012Sam Brannen
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Sam Brannen
 
Spring 3.1 and MVC Testing Support
Spring 3.1 and MVC Testing SupportSpring 3.1 and MVC Testing Support
Spring 3.1 and MVC Testing SupportSam Brannen
 

More from Sam Brannen (20)

Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
 
Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022
 
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
 
JUnit 5: What's New and What's Coming - Spring I/O 2019
JUnit 5: What's New and What's Coming - Spring I/O 2019JUnit 5: What's New and What's Coming - Spring I/O 2019
JUnit 5: What's New and What's Coming - Spring I/O 2019
 
JUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVMJUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVM
 
Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2
 
JUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondJUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyond
 
Testing with Spring: An Introduction
Testing with Spring: An IntroductionTesting with Spring: An Introduction
Testing with Spring: An Introduction
 
Testing with Spring 4.x
Testing with Spring 4.xTesting with Spring 4.x
Testing with Spring 4.x
 
Spring Framework 4.1
Spring Framework 4.1Spring Framework 4.1
Spring Framework 4.1
 
Testing Spring MVC and REST Web Applications
Testing Spring MVC and REST Web ApplicationsTesting Spring MVC and REST Web Applications
Testing Spring MVC and REST Web Applications
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with Spring
 
Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2
 
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
 
Spring Framework 3.2 - What's New
Spring Framework 3.2 - What's NewSpring Framework 3.2 - What's New
Spring Framework 3.2 - What's New
 
Spring 3.1 and MVC Testing Support - 4Developers
Spring 3.1 and MVC Testing Support - 4DevelopersSpring 3.1 and MVC Testing Support - 4Developers
Spring 3.1 and MVC Testing Support - 4Developers
 
Effective out-of-container Integration Testing - 4Developers
Effective out-of-container Integration Testing - 4DevelopersEffective out-of-container Integration Testing - 4Developers
Effective out-of-container Integration Testing - 4Developers
 
Spring 3.1 to 3.2 in a Nutshell - SDC2012
Spring 3.1 to 3.2 in a Nutshell - SDC2012Spring 3.1 to 3.2 in a Nutshell - SDC2012
Spring 3.1 to 3.2 in a Nutshell - SDC2012
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
 
Spring 3.1 and MVC Testing Support
Spring 3.1 and MVC Testing SupportSpring 3.1 and MVC Testing Support
Spring 3.1 and MVC Testing Support
 

Spring Web Services: SOAP vs. REST