getting started-with-oracle-so a-9

52
Getting Started with Oracle SoA Oracle SOA Working with Custom Faults Lab#9 Description: BISP is committed to provide BEST learning material to the beginners and advance learners. In the same series, we have prepared a complete end-to end Hands-on Beginner’s Guide for Oracle SoA. The document focuses on Working with Custom Faults. Join our professional training program and learn from experts. History: Version Description Change Author Publish Date 0.1 Initial Draft Shiva Kant Pandey 21 st Aug 2012 0.1 Review#1 Amit Sharma 29 th Aug 2012 www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 1

Upload: amit-sharma

Post on 15-May-2015

275 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Getting started-with-oracle-so a-9

Getting Started with Oracle SoA

Oracle SOA Working with Custom Faults Lab#9

Description: BISP is committed to provide BEST learning material to the beginners and advance learners. In the same series, we have prepared a complete end-to end Hands-on Beginner’s Guide for Oracle SoA. The document focuses on Working with Custom Faults. Join our professional training program and learn from experts.

History:Version Description Change Author Publish Date0.1 Initial Draft Shiva Kant Pandey 21st Aug 20120.1 Review#1 Amit Sharma 29th Aug 2012

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 1

Page 2: Getting started-with-oracle-so a-9

ContentsContents....................................................................................................................................... 2

Working with Custom faults .........................................................................................................3

Step wise procedure on topper student project with fault handling (custom fault):.....................3

Motive of Switch Activity..............................................................................................................4

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 2

Page 3: Getting started-with-oracle-so a-9

Working with Custom faults Q)What are custom faults ?

A) Custom faults are those faults which is defined by developer for certain limitations .

Summary: Aim of custom fault project is that to catch those faults which are defined by developer at the time of service development so here in topper student project when someone input wrong student marks i.e input marks of individual subject should not be smaller than zero & greater than hundred , so this kind of restrictions are provided by developer so if wrong marks input then it shows custom fault message that input marks is invalid .

Step wise procedure on topper student project with fault handling (custom fault):

Step 1: Open ProcessStudent Project & under it open ProcessStudentProcess.bpel as shown below

Step 2: In design mode Drag & Drop Switch Activity so that bpel can set condition

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 3

Page 4: Getting started-with-oracle-so a-9

Step 3: Click on condition part to set if condition for switch activity

Motive of Switch ActivityOur motive is setting condition that if marks are smaller than zero or greater than hundred then throw custom/business fault & also reply this fault as output else choose otherwise condition if input marks are correct & keep all components inside this otherwise condition

Step 4: Click on Expression builder shown below :

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 4

Page 5: Getting started-with-oracle-so a-9

Step 5: Click on lang1 marks ---> insert into expression ---> Logical Function ----> smaller ---> insert into expression ---> 0 (zero) or Click on lang1 marks ---> insert into expression ---> Logical Function ----> greater ---> insert into expression ---> 100 (hundred) or Click on lang2 marks ---> insert into expression ---> Logical Function ----> smaller ---> insert into expression ---> 0 (zero) or Click on lang2 marks ---> insert into expression ---> Logical Function ----> greater ---> insert into expression ---> 100 (hundred) or Click on lang3marks ---> insert into expression ---> Logical Function ----> smaller ---> insert into expression ---> 0 (zero) or Click on lang3 marks ---> insert into expression ---> Logical Function ----> greater ---> insert into expression ---> 100 (hundred) as shown below

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 5

Page 6: Getting started-with-oracle-so a-9

Step 6: Click on Ok .

Step 7 : Drag & drop Assign Activity & Rename It as AssignCustomFault :

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 6

Page 7: Getting started-with-oracle-so a-9

Step 8: Drag & drop Throw Activity"This activity throws the fault data to the catch activity"

Step 9: Rename throw activity as ThrowInvalidMarksFault

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 7

Page 8: Getting started-with-oracle-so a-9

Step 10: Double Click On Throw activity & Edit Throw activity , Click On Browse icon shown below

Step 11: Observe that there is no fault message under Project WSDL Files in ProcessStudentProcess.wsdl so first create fault message inside ProcessStudent wsdl file for custom fault .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 8

Page 9: Getting started-with-oracle-so a-9

Step 12: Observe ProcessStudentProcess.wsdl in design mode that inside port type it has only two process one is Input & other output but not containing Fault as its third process so create it in source mode .

Step 13:Now edit this wsdl in source mode

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 9

Page 10: Getting started-with-oracle-so a-9

Step 14: Edit PortType as shown below :

<wsdl:fault message="InvalidStudentMarksFaultMessage" name="Error"/>

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 10

Page 11: Getting started-with-oracle-so a-9

Step 15: Edit Message Type Definition as shown below :

<wsdl:message name="InvalidStudentMarksFaultMessage">

<wsdl:part name="InvalidStudentMarksFault" element="err:Error"/>

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 11

Page 12: Getting started-with-oracle-so a-9

Step16: Import Error.xsd from oramds , open resource palette ---> SOA-MDS-->dev mds conn -->apps--->Error.xsd

to get schema location of error.xsd click once on it & use ctrl +shift+c then paste inside schemalocation , delete all before apps & write oramds:/ before apps . then copy namespace from error.xsd & paste here inside namespace .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 12

Page 13: Getting started-with-oracle-so a-9

Step 17: Register namespace of Error.xsd with prefix "err" .

xmlns:err="http://www.bispsolutions.com/training/soa/schema/Student"

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 13

Page 14: Getting started-with-oracle-so a-9

Step 18: As completed editing wsdl click on design mode & observe fault process

Explore fault on clicking [+] sign & see that it contains InvalidStudentMarks faultMessage associated with its part .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 14

Page 15: Getting started-with-oracle-so a-9

Step 19: Click on Imports & check imported xsd

Step 20: click on Schema mode to see included xsd .

Step 21: Open ProcessStudentProcess.bpel & Edit Throw activity again

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 15

Page 16: Getting started-with-oracle-so a-9

Step 22: Now observe that this time wsdl contains Invalid studentMarksfaultMessage click on it & hit ok .

Step 23: Create Variable as shown below & click OK

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 16

Page 17: Getting started-with-oracle-so a-9

Step 24: Check detail & hit OK .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 17

Page 18: Getting started-with-oracle-so a-9

Step 25: Check variables by clicking on icon .

Step 26: Check that all QName is associated with its prefix , so observe here that InvalidStudentMarksFaultVar does not contains its prefix so click on QName & edit variable , it should be message type , click on Browse

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 18

Page 19: Getting started-with-oracle-so a-9

Step 27: Click on that InvalidStudentMarksFaultMessage & click OK

Step 28: Again Check variables by clicking on icon .

Step 29: Click on assign custom fault & start assigning fault data

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 19

Page 20: Getting started-with-oracle-so a-9

Step 30: To assign faultCode click on expression Drag & Drop on faultCode as shown below

Step31: Write Expression i.e fault code as 'FMW-002'

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 20

Page 21: Getting started-with-oracle-so a-9

Step 32: Similarly severity as 1

Step 33: Select Date Functions & under it select current-date-Time then insert intoExpressionthen click ok

Step 34: Similarly Detail as 'INVALID MARKS SELLECTION'

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 21

Page 22: Getting started-with-oracle-so a-9

Step 35: For CompositeName click Advanced functions ----> getCompositenName then

Step 36: For ComponentName click Advanced functions ----> getComponentName then insert into Expression

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 22

Page 23: Getting started-with-oracle-so a-9

Step 37: For CompositeInstanceId click Advanced functions ----> getCompositeInstanceId then insert into Expression

Step 38: Observe all assigned values

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 23

Page 24: Getting started-with-oracle-so a-9

Step 39: Drag & drop Reply Activity & click twice on it to edit reply as shown below:

Step 40: Edit Reply as shown below :

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 24

Page 25: Getting started-with-oracle-so a-9

Step 41: Click on compile icon to compile the bpel process

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 25

Page 26: Getting started-with-oracle-so a-9

Step 42: Build successful

Step 43: Deploy project by clicking ProcessStudent to devsoa

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 26

Page 27: Getting started-with-oracle-so a-9

Note: Before Deployment Start Weblogic Admin Server as discussed in my previous document Oracle Soa Part IV Doc.

Step 44: Click on Browser icon shown below:

Step 45: Start your enterprise manager by writing url http: //localhost:7001/em/

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 27

Page 28: Getting started-with-oracle-so a-9

Note : Here localhost is application server & 7001 is a port in which enterprise manager is running.

Step 46 : Login using credentials User Name :weblogicPassword : welcome1click on login

Step 47: We have successfully login inside Enterprise manager 11g (Farm_dev_soa)we can clearly observe here that admin server is up & all deployment status is also up it means that our admin server is running .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 28

Page 29: Getting started-with-oracle-so a-9

Now In left pane of window under Farm_dev_soa click on SOA radio button now again expand & under default we can easily see all the deployed projects. Click on Processstudent twice

Step 48: Click on TEST & create instance

Step 49:Explore payload & select tree view

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 29

Page 30: Getting started-with-oracle-so a-9

Step 50: Fill all blank spaces as shown below

Step 51: Click on Test Web Service

And get Response shown below:

Step 52: Now since input lang1 marks is 150 & so it displays custom error or InvalidStudentMarks Error as shown below .Click on close .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 30

Page 31: Getting started-with-oracle-so a-9

Step 53 : Parse wsdl & again try with these inputs shown below :

Click on Test Web Service

Step54 : Observe response without error because this time all input lang marks are between 0 & 100.

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 31

Page 32: Getting started-with-oracle-so a-9

Step 55: All instances are completed & instance 320002 is completed with custom fault & instance 320003 is completed without errors .

NOTE: Now how we catch these faults through invoking service , next steps are concentrated on this question in which calling service is TopperStudent Service .

Step 56: Open Topper Student Process . bpel click on Add catch all activity shown below

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 32

Page 33: Getting started-with-oracle-so a-9

NOTE: Catch activity can catch only system faults where as catch all activity catches business fault

Step 57: Click on source mode .Copy all activies of catch & paste inside catch all block in sorce mode

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 33

Page 34: Getting started-with-oracle-so a-9

Step 58: Copy catch as shown below

Step 59: Paste inside Catch all activity

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 34

Page 35: Getting started-with-oracle-so a-9

Step 60: Change into design mode & save by clicking save icon

Step 61: Drag & drop Scope Activity as shown below:

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 35

Page 36: Getting started-with-oracle-so a-9

Scope Activity : This activity consists of a collection of activities that can have their own local variables , fault handlers, compensation handlers and so on . A scope activity is analogous to a block { } in programming language .Each scope has a primary activity can be complex structured activity that, with many nested activities within it to arbitrary depth. The scope is shared by all the nested activities .

Step 62: Now drag & drop all components inside scope activity as shown below :

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 36

Page 37: Getting started-with-oracle-so a-9

NOTE: Since we have made changes in ProcessStudentProcess.wsdl in ProcessStudentProject hence also need changes in imported ProcessStudentProcess.wsdl in TopperStudent Project so that catch activity catch this custom fault as remote fault in TopperStudentProject .

Step 63: Open ProcessStudentProcess.wsdl in TopperStudentProject by clicking on it & observe in design mode that it does not have fault process .

Aim : Our aim is to copy the required content from 'M wsdl ' to 'N wsdl'

Where M= 'ProcessStudentProcess.wsdl' in ProcessStudent Project

& N= ' 'ProcessStudentProcess.wsdl' in TopperStudentProject

Step 64: Copy imported Error.xsd from M.wsdl as shown below:

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 37

Page 38: Getting started-with-oracle-so a-9

Step 65: Paste imported Error.xsd to N.wsdl as shown below:

Step 66:Copy registered namespace from M.wsdl as shown below:

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 38

Page 39: Getting started-with-oracle-so a-9

Step 67: Paste registered namespace from N.wsdl as shown below:

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 39

Page 40: Getting started-with-oracle-so a-9

Step 68: Copy MessageType from M.wsdl as shown below:

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 40

Page 41: Getting started-with-oracle-so a-9

Step 69: Paste MessageType to N.wsdl as shown below:

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 41

Page 42: Getting started-with-oracle-so a-9

Step 70:Copy PortType from M.wsdl as shown below:

Step 71: Paste PortType to N.wsdl & save all by clicking save icon

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 42

Page 43: Getting started-with-oracle-so a-9

Step 72: Click N.wsdl in design mode & observe that now created Fault as process .

Step 73: Add Terminate activity to terminate catch process as shown below & save all .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 43

Page 44: Getting started-with-oracle-so a-9

Step 74: Click on compile icon to compile the bpel process

Step 75: Compilation successful with o errors & o warnings .

Step 76 : Deploy project by clicking TopperStudentProject.

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 44

Page 45: Getting started-with-oracle-so a-9

Deployment Finished

Note: Before Deployment Start Weblogic Admin Server as discussed in my previous document Oracle Soa Part IV Doc

Step 77 : Click on Browser icon shown below:

Step 78: Start your enterprise manager by writing url http: //localhost:7001/em/

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 45

Page 46: Getting started-with-oracle-so a-9

Note : Here localhost is application server & 7001 is a port in which enterprise manager is running.

Step 79 : Login using credentials User Name :weblogicPassword : welcome1click on login

Step 80: We have successfully login inside Enterprise manager 11g (Farm_dev_soa)we can clearly observe here that admin server is up & all deployment status is also up it means that our admin server is running .Now In left pane of window under Farm_dev_soa click on SOA radio button now again expand & under default we can easily see all the deployed projects. Click twice on TopperStudentProject .

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 46

Page 47: Getting started-with-oracle-so a-9

Step 81: Click on TEST & Create instance

Step 82: Input Student array size =2

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 47

Page 48: Getting started-with-oracle-so a-9

Step 83: Scroll down page & Provide required input of a students

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 48

Page 49: Getting started-with-oracle-so a-9

Step 84: Click on Test Web Service

And get Response shown below:

Step 85: Now we can see that catch activity catch the fault & replied to the client as Faultdata Response but here catch activity cached it as remote fault thats why fault code is FMW-0001 & detail of custom fault is displayed inside Detail as FMW-002 , <Detail>Invalid marks </Detail> as shown below :

Step 86: Check flow trace

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 49

Page 50: Getting started-with-oracle-so a-9

Fig (1) Fig(2)

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 50

Page 51: Getting started-with-oracle-so a-9

Fig (3) Fig (4)

Step 87: Observe instances & instance state is terminated because of terminate activity now finally click on shutdown tab

Step 88: Shut down confirmation ,Click yes

Step 89: Successfully shut down the composite

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 51

Page 52: Getting started-with-oracle-so a-9

www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 52