• No results found

JDeveloper 11g JAX-WS web services:

N/A
N/A
Protected

Academic year: 2021

Share "JDeveloper 11g JAX-WS web services:"

Copied!
33
0
0

Loading.... (view fulltext now)

Full text

(1)

SAGE Computing Services

Customised Oracle Training Workshops and Consulting

Chris Muir

Oracle Consultant and Trainer

http://one-size-doesnt-fit-all.blogspot.com

 Oracle ACE Director - Fusion Middleware

JDeveloper 11g

JAX-WS web services:

(2)

Agenda

Part I: Web Services

Part II: JAX-WS & JAXB

(3)

Part I:

W

eb Services

(4)

Why web services?

System to system data integration

Consumer (client) & Publisher

Share data

System interoperability

Standardized

Low cost internet delivery

Loosely coupled

Key Benefits

(5)

Photo thanks to B.G. - Oodwin & Andrea Fregnani @ Flickr.com under CC

(6)

SOAP RPC vs Document Style

(7)

SOAP Web Services Defined

Host: http://www.sagecomputing.com.au

Web

Web Service /bookings

/departments

/timesheets

Supports many operations Server

Web Service

(8)

SOAP Web Services Defined

Service: http://www.sagecomputing.com.au/departments Web Service Depts getName getDetails updateName Operation Operation Operation Internet (Client)

?

(9)

SOAP Web Services Defined

WSDL: http://www.sagecomputing.com.au/departments?wsdl Web Service Depts getName getDetails updateName Operation Operation Operation Internet (Client) HTTP Request WSDL Please!

(10)

SOAP Web Services Defined

WSDL: http://www.sagecomputing.com.au/departments?wsdl Web Service Depts getName getDetails updateName Operation Operation Operation Internet (Client) HTTP Response Ah huh! Operations API Style XML Schemas

(11)

SOAP Web Services Defined

Service: http://www.sagecomputing.com.au/departments Web Service Depts getName getDetails updateName Operation Operation Operation Internet (Client) HTTP Request XML Payload

(12)

SOAP Web Services Defined

Service: http://www.sagecomputing.com.au/departments Web Service Depts getName getDetails updateName Operation Operation Operation Internet (Client) HTTP Response XML

Payload Thank you! Thinking

thinking thinking

(13)

SOAP Core Concepts

HTTP

URL

Web Services (aka. endpoints)

Operations

»

Parameters

Based on XML Schemas

XML Payloads

(14)

Part II:

JAX-WS & JAXB

(15)

WS Framework Challenges

Obscure underlying implementation detail

from programmer:

HTTP request/responses

SOAP envelope

XML to native language

datatype mapping

(16)

• Java API for Web Services

• JAX-WS 2.x replaces JAX-RPC in JEE5

• Standards based

• Apart of the Glassfish "Metro" web service stack of technologies

JAX-WS

• Simplified POJOs

• Uses annotation

• Easy to understand

• No code for HTTP

• No code for transport layer

• Focus on the data rather than mechanics

(17)

• Can create both the publisher (aka. provider or web service) and client (aka. consumer)

– Publisher = JEE5.0 + Client = JSE6.0

– Primarily SOAP based web services

– Also supports RESTful based web services

– Support for SOAP 1.1/1.2

– Support for binary attachments (MTOM)

• RI includes command line tools for generating artefacts - WSImport - top down - create service from WSDL - WSGen - bottom up - create service from Java code

• JDeveloper IDE provides an easier wizard driven interface

(18)

• Incoming request - XML "unmarshalled" into Java objects

• Outgoing response - Java objects are "marshalled" into XML

• JAX-WS supports multiple XML 2 Java binding technologies

– map XML to Java equivalent

– provide Java the ability to consume/create XML data

– JAX-WS support multiple binding types:

• XML Source (DOM)

• SAAJ (SOAPMessage)

• Activation data sources (Streams - raw text - similar i/o)

• Java Architecture for XML Binding (JAXB)

• JAXB object structure is familiar to Java programmers

• No more XML

(19)
(20)

Part III:

JDeveloper

Demonstration

(21)
(22)

Create your XML

Schema

(23)

Create the web

service WSDL

(24)
(25)
(26)
(27)

Photo thanks to A National Acrobat @ Flickr.com under CC

(28)
(29)

01 CREATE TABLE dept (deptno NUMBER(2,0), dname VARCHAR2(14));

02

03 CREATE TYPE dept_type AS OBJECT

04 (deptno NUMBER

05 ,dname VARCHAR2(14)

06

07 CREATE TYPE dept_list_table IS TABLE OF dept_type;

08

09 CREATE OR REPLACE PACKAGE ws_package AS

10 FUNCTION test_dept_table RETURN dept_list_table; 11 END ws_package;

12

13 CREATE OR REPLACE PACKAGE BODY ws_package AS

14 FUNCTION test_dept_table RETURN dept_list_table IS

15 all_depts dept_list_table := dept_list_table(); 16 dRecType dept_type;

17 i NUMBER := 0; 18 BEGIN

19 FOR r_list IN (SELECT * FROM dept) LOOP

20 i := i + 1;

21 dRecType := dept_type(null, null, null, null); 22 dRecType.deptno := r_list.deptno; 23 dRecType.dname := r_list.dname; 24 all_depts.extend; 25 all_depts(i) := dRecType; 26 END LOOP; 27 28 RETURN all_depts; 29 END test_dept_table; 30 END ws_package;

(30)
(31)
(32)

SAGE Computing Services

Customised Oracle Training Workshops and Consulting

Questions and Answers?

Presentations are available from our website:

www.sagecomputing.com.au

[email protected] [email protected]

(33)

JDeveloper Web Services References

Pas Apicella blog

http://theblasfrompas.blogspot.com

(Many thanks to Pas for the PL/SQL example:

http://theblasfrompas.blogspot.com/2009/08/jdeveloper-11g-plsql-web-service.html)

Edwin Biemond's blog

http://biemond.blogspot.com

Gerard Davison blog

References

Related documents

There is enough work for the Catholic Church attempt to influence the Healthcare policy to modify the financial system and to support research projects they will develop a new

Therefore, it is concluded that the impact of FDI on poverty in the ECOWAS region is dependent on the poverty measure used in the study, as well as on the econometric

The York review team sought to correct the record and expressed their concern over statements by groups including the British Fluoridation Society, British Dental Association, and

Thus, a longer follow-up should be used to evaluate the long term evolution of these two treatments, but both treat- ments can be considered in cases of patellar tendinopathies

Step2: Calculate the Horizontal Loads • Transverse Surge load is taken as 10% of the combined. weight of the crab and the

We saw, in the previous chapter, that we can take the prime fields F p and construct other finite fields from them by adjoining roots of polynomials... By Lemma 6.3, all the elements

ferric reducing antioxidant power (FRAP), DPPH free radical scavenging activity and ABTS radical cation decolourisation, together with the determination of total