Soap primer
This presentation is the property of its rightful owner.
Sponsored Links
1 / 13

Apache Axis2 PowerPoint PPT Presentation


  • 66 Views
  • Uploaded on
  • Presentation posted in: General

SOAP Primer. Apache Axis2. Agenda. What is SOAP? Characteristics SOAP message structure Header blocks Fault notification Exercises. What is SOAP?.

Download Presentation

Apache Axis2

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Soap primer

SOAP Primer

Apache Axis2


Agenda

Agenda

  • What is SOAP?

  • Characteristics

  • SOAP message structure

  • Header blocks

  • Fault notification

  • Exercises


What is soap

What is SOAP?

  • Provides the definition of the XML-based information which can be used for exchanging structured and typed information between peers in a decentralized, distributed environment

  • Specification: http://www.w3.org/TR/soap/

Initial Sender

Ultimate Receiver

Intermediary


Characteristics

Characteristics

  • A SOAP message is formally specified as an XML infoset

    • "on-the-wire" representation can be anything

  • SOAP describes a stateless, one-way message exchange mechanism between a SOAP sender and a SOAP receiver

  • But applications can create more complex interaction patterns on top of this one-way exchange mechanism

    • request/response

    • request/multiple responses

    • back-and-forth conversations


Soap message structure

SOAP Message Structure

Envelope

Header (Optional)‏

Header Block 1

Header Block 2

Body


Example soap message

Example SOAP Message

SOAP 1.2: http://www.w3.org/2003/05/soap-envelope

<?xml version='1.0' encoding='UTF-8'?>

<soapenv:Envelope xmlns:soapenv="...">

<soapenv:Body>

<ns1:c2f xmlns:ns1="http://mypkg">

<ns1:cTemp>100.0</ns1:cTemp>

</ns1:c2f>

</soapenv:Body>

</soapenv:Envelope>


Example soap message 2

Example SOAP Message 2

<?xml version='1.0' encoding='UTF-8'?>

<soapenv:Envelope xmlns:soapenv="...">

<soapenv:Header>

<exh:client xmlns:exh="..."

soapenv:mustUnderstand="true">

<exh:id>[email protected]</exh:id>

</exh:client>

</soapenv:Header>

<soapenv:Body>

<ns1:c2f xmlns:ns1="http://mypkg">

<ns1:cTemp>100.0</ns1:cTemp>

</ns1:c2f>

</soapenv:Body>

</soapenv:Envelope>


Header blocks

Header Blocks

  • Each header block may contain an optional “role” attribute

    • Any URI can be the value

  • Some predefined roles

    • Nexthttp://www.w3.org/2003/05/soap-envelope/role/next

    • Ultimate Receiverhttp://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver

    • Nonehttp://www.w3.org/2003/05/soap-envelope/role/none

    • Empty (“”)‏


Header blocks cont

Header Blocks (Cont.)‏

  • A header block may contain “mustUnderstand” attribute

    • true: Targeted node must process the header

    • false: Targeted node may process the header

  • A header block may contain “relay” attribute

    • true: Header block targeted at the node must be relayed if it is not processed

    • false: Header block targeted at the node is not forwarded if it is not processed


Fault notification

Fault Notification

  • SOAP fault notification mechanism is based on fault details put inside SOAP body

<soapenv:Body>

<soapenv:Fault>

<soapenv:Code>

<soapenv:Value>

soapenv:Receiver

</soapenv:Value>

</soapenv:Code>

<soapenv:Reason>

<soapenv:Text xml:lang="en-US">

Undeclared namespace prefix "ns1"

</soapenv:Text>

</soapenv:Reason>

<soapenv:Detail />

</soapenv:Fault>

</soapenv:Body>


Fault notification cont

Fault Notification (Cont.)‏

  • Nested fault details can be placed inside “Subcode”

<soapenv:Body>

<soapenv:Fault>

<soapenv:Code>

<soapenv:Value>

...

</soapenv:Value>

<soapenv:Subcode>

<soapenv:Value>

...

</soapenv:Value>

<soapenv:Subcode>

...

</soapenv:Subcode>

</soapenv:Subcode>

</soapenv:Code>

...


Fault notification cont1

Fault Notification (Cont.)‏

<soapenv:Fault>

<soapenv:Code>

</soapenv:Code>

<soapenv:Reason>

</soapenv:Reason>

<soapenv:Detail>

</soapenv:Detail>

<soapenv:Node>

</soapenv:Node>

<soapenv:Role>

</soapenv:Role>

</soapenv:Fault>

The node that generated the fault

The role played by the node that generated the fault


Exercises

Exercises

  • In Module 01 (“Introduction to Web Services With Apache Axis2”), we used TCPMon to intercept and inspect SOAP messages between a SOAP client and server.

    • Capture the communication between TemperatureConverterClient and Server.

    • Attempt to resend the request and make sure server responds properly.

    • Add an arbitrary SOAP header block and try.

    • Set the “role” attribute of the header so that the message is targeted at the next SOAP node. Resend the message.

    • Set the “mustUnderstand” attribute to “true” and try.

    • Carefully note if there are differences between responses and HTTP headers in each case.


  • Login