Soumettre la recherche
Mettre en ligne
JAX-RS 2.0: RESTful Web Services
•
15 j'aime
•
5,480 vues
Arun Gupta
Suivre
JAX-RS 2.0 presentation at IndicThreads
Lire moins
Lire la suite
Technologie
Actualités & Politique
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 51
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Introduction to JAX-RS
Introduction to JAX-RS
Andreas Bjärlestam
An Introduction To REST API
An Introduction To REST API
Aniruddh Bhilvare
Introduction to ajax
Introduction to ajax
Pihu Goel
Introduction to EJB
Introduction to EJB
Return on Intelligence
Hibernate Presentation
Hibernate Presentation
guest11106b
Introduction to Node.js
Introduction to Node.js
Vikash Singh
Servlets
Servlets
ZainabNoorGul
Java Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | Edureka
Edureka!
Recommandé
Introduction to JAX-RS
Introduction to JAX-RS
Andreas Bjärlestam
An Introduction To REST API
An Introduction To REST API
Aniruddh Bhilvare
Introduction to ajax
Introduction to ajax
Pihu Goel
Introduction to EJB
Introduction to EJB
Return on Intelligence
Hibernate Presentation
Hibernate Presentation
guest11106b
Introduction to Node.js
Introduction to Node.js
Vikash Singh
Servlets
Servlets
ZainabNoorGul
Java Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | Edureka
Edureka!
Java database connectivity with MySql
Java database connectivity with MySql
Dhyey Dattani
REST API
REST API
Tofazzal Ahmed
Dom
Dom
Rakshita Upadhyay
Extending Java EE with CDI and JBoss Forge
Extending Java EE with CDI and JBoss Forge
Antoine Sabot-Durand
Spring Boot
Spring Boot
koppenolski
JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
Jdbc ppt
Jdbc ppt
Vikas Jagtap
Introduction to java beans
Introduction to java beans
Hitesh Parmar
PHP - Introduction to Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
Vibrant Technologies & Computers
Introduction To CodeIgniter
Introduction To CodeIgniter
schwebbie
Ajax.ppt
Ajax.ppt
MAGNA COLLEGE OF ENGINEERING
A Basic Django Introduction
A Basic Django Introduction
Ganga Ram
An introduction to React.js
An introduction to React.js
Emanuele DelBono
Ajax Presentation
Ajax Presentation
alaa.moustafa
Java Collections
Java Collections
Kongu Engineering College, Perundurai, Erode
Jdbc connectivity in java
Jdbc connectivity in java
Muthukumaran Subramanian
Java servlets
Java servlets
lopjuan
Introduction to Spring Boot!
Introduction to Spring Boot!
Jakub Kubrynski
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
pcnmtutorials
Introduction to Spring Framework
Introduction to Spring Framework
Serhat Can
Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0
Dmytro Chyzhykov
Web Services Tutorial
Web Services Tutorial
Lorna Mitchell
Contenu connexe
Tendances
Java database connectivity with MySql
Java database connectivity with MySql
Dhyey Dattani
REST API
REST API
Tofazzal Ahmed
Dom
Dom
Rakshita Upadhyay
Extending Java EE with CDI and JBoss Forge
Extending Java EE with CDI and JBoss Forge
Antoine Sabot-Durand
Spring Boot
Spring Boot
koppenolski
JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
Jdbc ppt
Jdbc ppt
Vikas Jagtap
Introduction to java beans
Introduction to java beans
Hitesh Parmar
PHP - Introduction to Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
Vibrant Technologies & Computers
Introduction To CodeIgniter
Introduction To CodeIgniter
schwebbie
Ajax.ppt
Ajax.ppt
MAGNA COLLEGE OF ENGINEERING
A Basic Django Introduction
A Basic Django Introduction
Ganga Ram
An introduction to React.js
An introduction to React.js
Emanuele DelBono
Ajax Presentation
Ajax Presentation
alaa.moustafa
Java Collections
Java Collections
Kongu Engineering College, Perundurai, Erode
Jdbc connectivity in java
Jdbc connectivity in java
Muthukumaran Subramanian
Java servlets
Java servlets
lopjuan
Introduction to Spring Boot!
Introduction to Spring Boot!
Jakub Kubrynski
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
pcnmtutorials
Introduction to Spring Framework
Introduction to Spring Framework
Serhat Can
Tendances
(20)
Java database connectivity with MySql
Java database connectivity with MySql
REST API
REST API
Dom
Dom
Extending Java EE with CDI and JBoss Forge
Extending Java EE with CDI and JBoss Forge
Spring Boot
Spring Boot
JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
Jdbc ppt
Jdbc ppt
Introduction to java beans
Introduction to java beans
PHP - Introduction to Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
Introduction To CodeIgniter
Introduction To CodeIgniter
Ajax.ppt
Ajax.ppt
A Basic Django Introduction
A Basic Django Introduction
An introduction to React.js
An introduction to React.js
Ajax Presentation
Ajax Presentation
Java Collections
Java Collections
Jdbc connectivity in java
Jdbc connectivity in java
Java servlets
Java servlets
Introduction to Spring Boot!
Introduction to Spring Boot!
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
Introduction to Spring Framework
Introduction to Spring Framework
En vedette
Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0
Dmytro Chyzhykov
Web Services Tutorial
Web Services Tutorial
Lorna Mitchell
Understanding REST
Understanding REST
Nitin Pande
RESTful Web Services
RESTful Web Services
Christopher Bartling
RestFull Webservices with JAX-RS
RestFull Webservices with JAX-RS
Neil Ghosh
Easy REST APIs with Jersey and RestyGWT
Easy REST APIs with Jersey and RestyGWT
David Chandler
Java Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RS
IMC Institute
REST Level 5 - A Trek To The Summit
REST Level 5 - A Trek To The Summit
Pat Cappelaere
Web services restful con JAX-RS
Web services restful con JAX-RS
Vortexbird
Overview of web services
Overview of web services
People Strategists
Overview of RESTful web services
Overview of RESTful web services
nbuddharaju
Using Java to implement RESTful Web Services: JAX-RS
Using Java to implement RESTful Web Services: JAX-RS
Katrien Verbert
RESTful Web services using JAX-RS
RESTful Web services using JAX-RS
Arun Gupta
Web services
Web services
Peter R. Egli
RESTful Web Services with JAX-RS
RESTful Web Services with JAX-RS
Carol McDonald
Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Services
ecosio GmbH
Introduction to RESTful Webservices in JAVA
Introduction to RESTful Webservices in JAVA
psrpatnaik
Java web services using JAX-WS
Java web services using JAX-WS
IndicThreads
REST Presentation
REST Presentation
Alexandros Marinos
SOAP-based Web Services
SOAP-based Web Services
Katrien Verbert
En vedette
(20)
Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0
Web Services Tutorial
Web Services Tutorial
Understanding REST
Understanding REST
RESTful Web Services
RESTful Web Services
RestFull Webservices with JAX-RS
RestFull Webservices with JAX-RS
Easy REST APIs with Jersey and RestyGWT
Easy REST APIs with Jersey and RestyGWT
Java Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RS
REST Level 5 - A Trek To The Summit
REST Level 5 - A Trek To The Summit
Web services restful con JAX-RS
Web services restful con JAX-RS
Overview of web services
Overview of web services
Overview of RESTful web services
Overview of RESTful web services
Using Java to implement RESTful Web Services: JAX-RS
Using Java to implement RESTful Web Services: JAX-RS
RESTful Web services using JAX-RS
RESTful Web services using JAX-RS
Web services
Web services
RESTful Web Services with JAX-RS
RESTful Web Services with JAX-RS
Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to RESTful Webservices in JAVA
Introduction to RESTful Webservices in JAVA
Java web services using JAX-WS
Java web services using JAX-WS
REST Presentation
REST Presentation
SOAP-based Web Services
SOAP-based Web Services
Similaire à JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: New and Noteworthy in RESTful Web services API at JAX London
JAX-RS 2.0: New and Noteworthy in RESTful Web services API at JAX London
Arun Gupta
JAX RS 2.0 - OTN Bangalore 2013
JAX RS 2.0 - OTN Bangalore 2013
Jagadish Prasath
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
Logico
JAX-RS 2.0: New and Noteworthy in RESTful Web Services API - Arun Gupta
JAX-RS 2.0: New and Noteworthy in RESTful Web Services API - Arun Gupta
JAX London
112815 java ee8_davidd
112815 java ee8_davidd
Takashi Ito
Java EE7
Java EE7
Jay Lee
Java ee7 1hour
Java ee7 1hour
Frank Rodriguez
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)
Logico
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
Jagadish Prasath
JAX-RS.next
JAX-RS.next
Michal Gajdos
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Edward Burns
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
Bruno Borges
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
jaxLondonConference
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5
Arun Gupta
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API Examples
Bobby Curtis
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Max Andersen
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in Java
Arun Gupta
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
Arun Gupta
Java SE 8
Java SE 8
Simon Ritter
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Reza Rahman
Similaire à JAX-RS 2.0: RESTful Web Services
(20)
JAX-RS 2.0: New and Noteworthy in RESTful Web services API at JAX London
JAX-RS 2.0: New and Noteworthy in RESTful Web services API at JAX London
JAX RS 2.0 - OTN Bangalore 2013
JAX RS 2.0 - OTN Bangalore 2013
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
JAX-RS 2.0: New and Noteworthy in RESTful Web Services API - Arun Gupta
JAX-RS 2.0: New and Noteworthy in RESTful Web Services API - Arun Gupta
112815 java ee8_davidd
112815 java ee8_davidd
Java EE7
Java EE7
Java ee7 1hour
Java ee7 1hour
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
JAX-RS.next
JAX-RS.next
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API Examples
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in Java
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
Java SE 8
Java SE 8
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Plus de Arun Gupta
5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
Arun Gupta
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
Arun Gupta
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
Arun Gupta
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
Arun Gupta
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
Arun Gupta
Why Amazon Cares about Open Source
Why Amazon Cares about Open Source
Arun Gupta
Machine learning using Kubernetes
Machine learning using Kubernetes
Arun Gupta
Building Cloud Native Applications
Building Cloud Native Applications
Arun Gupta
Chaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
Arun Gupta
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
Arun Gupta
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
Arun Gupta
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
Arun Gupta
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
Arun Gupta
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
Arun Gupta
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
Arun Gupta
Container Landscape in 2017
Container Landscape in 2017
Arun Gupta
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
Thanks Managers!
Thanks Managers!
Arun Gupta
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
Arun Gupta
Plus de Arun Gupta
(20)
5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
Why Amazon Cares about Open Source
Why Amazon Cares about Open Source
Machine learning using Kubernetes
Machine learning using Kubernetes
Building Cloud Native Applications
Building Cloud Native Applications
Chaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
Container Landscape in 2017
Container Landscape in 2017
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
Thanks Managers!
Thanks Managers!
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
Dernier
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Dernier
(20)
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
JAX-RS 2.0: RESTful Web Services
1.
JAX-RS 2.0: RESTful
Java on Steroids Arun Gupta, Java EE & GlassFish Guy http://blogs.oracle.com/arungupta, @arungupta 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
2.
The following is
intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle. 2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 2011,
3.
Part I: How
we got here ? 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
4.
How We Got
Here? • Shortest intro to JAX-RS 1.0 • Requested features for JAX-RS 2.0 • JSR 339: JAX-RS 2.0 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
5.
JAX-RS Origins
• JAX-RS 1.0 is Java API for RESTful WS • RESTFul Principles: – Assign everything an ID – Link things together – Use common set of methods – Allow multiple representations – Stateless communications 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
6.
JAX-RS 1.0 Goals
• POJO-Based API • HTTP Centric • Format Independence • Container Independence • Inclusion in Java EE 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
7.
Example: JAX-RS API
Resources @Path("/atm/{cardId}") URI Parameter public class AtmService { Injection @GET @Path("/balance") @Produces("text/plain") public String balance(@PathParam("cardId") String card, @QueryParam("pin") String pin) { return Double.toString(getBalance(card, pin)); } … HTTP Method Built-in Binding Serialization 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
8.
Example: JAX-RS API
(contd.) … Custom Serialization @POST @Path("/withdrawal") @Consumes("text/plain") @Produces("application/json") public Money withdraw(@PathParam("card") String card, @QueryParam("pin") String pin, String amount){ return getMoney(card, pin, amount); } } 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
9.
Example: JAX-RS API
(contd.) 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
10.
Example: JAX-RS API
(contd.) 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
11.
Requested Features
• Client API • Client-side and Server-side Asynchronous • Filters and Interceptors • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 • Model-View-Controller 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
12.
JSR 339 Expert
Group • EG Formed in March 2011 • Oracle Leads: Marek Potociar / Santiago Pericas-G. • Expert Group: – Jan Algermissen, Florent Benoit, Sergey Beryozkin (Talend), Adam Bien, Bill Burke (RedHat), Clinton Combs, Bill De Hora, Markus Karg, Sastry Malladi (Ebay), Julian Reschke, Guilherme Silveira, Dionysios Synodinos • Early Draft 3 published on Jun 7, 2012! 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
13.
Part II: Where
We Are Going 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
14.
In-Scope Features
• Client API • Filters and Interceptors • Client-side and Server-side Asynchronous • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 • Model-View-Controller 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
15.
New in JAX-RS
2.0 • Client API • Filters and Interceptors • Client-side and Server-side Asynchronous • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
16.
Client API -
Motivation • HTTP client libraries too low level • Sharing features with JAX-RS server API • E.g., MBRs and MBWs • Supported by some JAX-RS 1.0 implementations • Need for a standard 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
17.
Client API –
Old and New • Client-side API URL url = new URL("http://.../atm/balance"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); Old conn.setRequestMethod("GET"); conn.setDoInput(true); conn.setDoOutput(false); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = br.readLine()) != null) { out.println(line); }# Client client = ClientFactory.newClient();# String balance = client.target("http://.../atm/balance")# .request()# .get(String.class);# New 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
18.
Example: Client API //
Get instance of Client Client client = ClientFactory.newClient(); Can also inject @URI for the target ß // Get account balance String bal = client.target("http://.../atm/balance") .pathParam("card", "111122223333") .queryParam("pin", "9876") .request().get(String.class); 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
19.
Example: Client API
(contd.) // Withdraw some money Money mon = client.target("http://.../atm/withdraw") .pathParam("card", "111122223333") .queryParam("pin", "9876") .request("application/json") .post(text("50.0"), Money.class); 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
20.
Example: Generic Interface
(Command pattern, Batch processing) Invocation inv1 = client.target("http://.../atm/balance")… .request().buildGet(); Invocation inv2 = client.target("http://.../atm/withdraw")… .request() .buildPost(text("50.0")); 20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
21.
Example: Generic Interface
(contd.) Collection<Invocation> invs = Arrays.asList(inv1, inv2); Collection<Response> ress = Collections.transform(invs, new F<Invocation, Response>() { public Response apply(Invocation inv) { return inv.invoke(); } }); 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
22.
New in JAX-RS
2.0 • Client API • Filters and Interceptors • Client-side and Server-side Asynchronous • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
23.
Filters & Interceptors
– Motivation • Customize JAX-RS implementations via well-defined extension points • Use Cases: Logging, Compression, Security, Etc. • Shared by client and server APIs • Supported by most JAX-RS 1.0 implementations • All using slightly different types or semantics 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
24.
Filters
• Non-wrapping extension points • Pre: Interface RequestFilter • Post: Interface ResponseFilter • Part of a filter chain • Do not call the next filter directly • Each filter decides to proceed or break chain • By returning FilterAction.NEXT or FilterAction.STOP 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
25.
Filter Example: LoggingFilter @Provider class
LoggingFilter implements RequestFilter, ResponseFilter { @Override public FilterAction preFilter(FilterContext ctx) throws IOException { logRequest(ctx.getRequest()); return FilterAction.NEXT; } … 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
26.
Filter Example: LoggingFilter
(contd.) @Override public FilterAction postFilter(FilterContext ctx) throws IOException { logResponse(ctx.getResponse()); return FilterAction.NEXT; } } 26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
27.
Interceptors
• Wrapping extension points • ReadFrom: Interface ReaderInterceptor • WriteTo: Interface WriterInterceptor • Part of an interceptor chain • Call the next handler directly • Each handler decides to proceed or break chain • By calling ctx.proceed() 27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
28.
Handler Example: GzipInterceptor! @Provider class
GzipInterceptor implements ReaderInterceptor, WriterInterceptor { @Override public Object aroundReadFrom(ReadInterceptorContext ctx) throws IOException { if (gzipEncoded(ctx)) { InputStream old = ctx.getInputStream(); ctx.setInputStream(new GZIPInputStream(old)); } return ctx.proceed(); } … } 28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
29.
Order of Execution
Request WriteTo Request ReadFrom Filter Handler Filter Handler ReadFrom Response WriteTo Response Handler Filter Handler Filter Client Server 29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
30.
Binding Example: LoggingFilter!
@NameBinding // or @Qualifier ? @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(value = RetentionPolicy.RUNTIME) public @interface Logged { } @Provider @Logged public class LoggingFilter implements RequestFilter, ResponseFilter { … } 30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
31.
Binding Example: LoggingFilter!
@Path("/") public class MyResourceClass { @Logged @GET @Produces("text/plain") @Path("{name}") public String hello(@PathParam("name") String name) { return "Hello " + name; } } 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
32.
New in JAX-RS
2.0 • Client API • Filters and Interceptors • Client-side and Server-side Asynchronous • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
33.
Asynchronous – Motivation
• Let “borrowed” threads run free! • Container environment • Suspend and resume connections • Suspend while waiting for an event • Resume when event arrives • Leverage Servlet 3.X async support (if available) • Client API support • Future<RESPONSE>, InvocationCallback<RESPONSE> 33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
34.
Example: Suspend and
Resume @Path("/async/longRunning") public class MyResource { @Context private ExecutionContext ctx; @GET @Produces("text/plain") public void longRunningOp() { Executors.newSingleThreadExecutor().submit( new Runnable() { public void run() { Thread.sleep(10000); // Sleep 10 secs ctx.resume("Hello async world!"); } }); ctx.suspend(); // Suspend connection and return } … } 34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
35.
Example: @Suspend Annotation
@Path("/async/longRunning") public class MyResource { @Context private ExecutionContext ctx; @GET @Produces("text/plain") @Suspend public void longRunning() { Executors.newSingleThreadExecutor().submit( new Runnable() { public void run() { Thread.sleep(10000); // Sleep 10 secs ctx.resume("Hello async world!"); } }); // ctx.suspend(); Suspend connection and return } … } 35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
36.
Example: Client API
Async Support // Build target URI Target target = client.target("http://.../atm/balance")… // Start async call and register callback Future<?> handle = target.request().async().get( new InvocationCallback<String>() { public void complete(String balance) { … } public void failed(InvocationException e) { … } }); // After waiting for a while … If (!handle.isDone()) handle.cancel(true); 36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
37.
New in JAX-RS
2.0 • Client API • Filters and Interceptors • Client-side and Server-side Asynchronous • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
38.
Improved Connection Negotiation
GET http://.../widgets2 Accept: text/*; q=1 … Path("widgets2") public class WidgetsResource2 { @GET @Produces("text/plain", "text/html") public Widgets getWidget() {...} } 38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
39.
Improved Conneg (contd.)
GET http://.../widgets2 Accept: text/*; q=1 … Path("widgets2") public class WidgetsResource2 { @GET @Produces("text/plain;qs=0.5", "text/html;qs=0.75") public Widgets getWidget() {...} } 39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
40.
New in JAX-RS
2.0 • Client API • Filters and Interceptors • Client-side and Server-side Asynchronous • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
41.
Validation – Motivation
• Services must validate data • Bean Validation already provides the mechanism • Integration into JAX-RS • Support for constraint annotations in: • Fields and properties • Parameters (including request entity) • Methods (response entities) • Resource classes 41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
42.
Example: Constraint Annotations
@Path("/") class MyResourceClass { @POST @Consumes(MediaType.APPLICATION_FORM_URLENCODED) Built-in public void registerUser( @NotNull @FormParam("firstName") String fn, Custom @NotNull @FormParam("lastName") String ln, @Email @FormParam("email") String em) { ... } } 42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
43.
Example: User defined
Constraints @Target({ METHOD, FIELD, PARAMETER }) @Retention(RUNTIME) @Constraint(validatedBy = EmailValidator.class) public @interface Email { ... } class EmailValidator implements ConstraintValidator<Email, String> { public void initialize(Email email) { … } public boolean isValid(String value, ConstraintValidatorContext context) { // Check 'value' is e-mail address … } } 43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
44.
Example: Request Entity
Validation @CheckUser1 class User { ... } @Path("/") class MyResourceClass { @POST @Consumes("application/xml") public void registerUser1(@Valid User u) { … } @POST @Consumes("application/json") public void registerUser12(@CheckUser2 @Valid User u) { … } } 44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
45.
New in JAX-RS
2.0 • Client API • Filters and Interceptors • Client-side and Server-side Asynchronous • Improved Connection Negotiation • Validation • Hypermedia • Alignment with JSR 330 45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
46.
Motivation
• REST principles • Identifiers and Links • HATEOAS (Hypermedia As The Engine Of App State) • Link types: • Structural Links • Transitional Links 46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
47.
Example: Structural vs.
Transitional Links Link: <http://.../orders/1/ship>; rel=ship, <http://.../orders/1/cancel>; rel=cancel Transitional ... <order id="1"> <customer>http://.../customers/11</customer> <address>http://.../customers/11/address/1</customer> <items> <item> Structural <product>http://.../products/111</products> <quantity>2</quantity> </item> ... </order> 47 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
48.
Example: Using Transitional
Links // Server API Response res = Response.ok(order) .link("http://.../orders/1/ship", "ship") .build(); // Client API Response order = client.target(…) .request("application/xml").get(); if (order.getLink(“ship”) != null) { Response shippedOrder = client .target(order.getLink("ship")) .request("application/xml").post(null); … } 48 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
49.
Other Topics Under
Consideration • Better integration with JSR 330 • Support @Inject and qualifiers • High-level client API? 49 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
50.
More Information
• JSR: http://jcp.org/en/jsr/detail?id=339 • Java.net: http://jax-rs-spec.java.net • User Alias: users@jax-rs-spec.java.net • All EG discussions forwarded to this list 50 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
51.
Q&A 51
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Télécharger maintenant