Web Services, EBS R11 and R12
with SOA
Presenter: Sarah Sinclair and Gareth Roberts
This is a technical overview of how to get a web service
up and running in EBS R11 with no SOA install.
There will be lots of ideas for those who need to cater
for Web Services in Oracle but aren't on R12 and don't
want a whole SOA install.
Gareth Roberts from Virtuate will also contrast R11 Web
Services with a summary of Web Services in R12 utilizing
the Release 12.1 Integrated SOA Gateway product.
What is Service Enablement?
• Abstracted Re-Usable Interfaces
• Standards Based Web Services
• Documented Services & API
Ability to Capability to
Consume Services Provide Services
Service
Broker
Find Register
Service
Contract
Service Consumer
Service Provider
(SOA)
Client Service
Case Study
External system is sending data by
invoking our webservice – passing the
inbound data and expecting a response.
External system will call a generated
webservice endpoint.
Externally provided WSDL file
(Web Service Definition Language)
Top down vs Bottom up.
Why OC4J ?
Old version of OAS running
Multiple patches required
Desire to isolate EBS from solution (do
not want any patches to affect current
EBS 11i version)
Desire to have full control over web
service processing.
OAS / OC4J architecture
WSDL File
Web Services Definition Language
Operations
<wsdl:operation name="FindFinancialProject">
<wsdl:input
wsaw:Action="http://www.datacom.co.nz/IRIS/Financials
/IFinancialsIntegrationService/FindFinancialProject"
message="tns:IFinancialsIntegrationService_FindFinanc
ialProject_InputMessage"/>
</wsdl:operation>
Create the Webservice
Start up Jdeveloper (10.1.3)
Create a new Application and Project
Copy the wsdl and related files to the
Project top level directory
Choose File->New
Web Services – > Java Web Service from
WSDL
Create the Webservice
Go through the wizard
Create the Webservice
Resulting web service skeleton is created:
Visual view of the WSDL file
Create the Webservice
Resulting web service skeleton is created:
Java skeleton code created
One method per operation from the
WSDL file has been created
Deploy the Webservice
You can setup to deploy direct to server
if you wish
Right click on WebServices.deploy –
Deploy to WAR file
Deploy the Webservice
In J2EE application modules are packaged as EAR,
JAR and WAR based on their functionality
JAR: EJB modules which contains enterprise java
beans class files and EJB deployment descriptor
are packed as JAR files with .jar extension
WAR: Web modules which contains Servlet class
files,JSP Files ,supporting files, GIF and HTML files
are packaged as JAR file with .war( web achive)
extension
EAR: All above files(.jar and .war) are packaged as
JAR file with .ear ( enterprise archive) extension
and deployed into Application Server.
OC4J service
List of Applications and Options to
Deploy, Redeploy and Undeploy
OC4J service
oc4j –start
http://localhost:8888/
OC4J service
Choose Deploy
Need the context root:
Context Root: A name that gets mapped
to the document root of a Web
application
OC4J service
Choose Deploy
Need the context root:
Context Root: A name that gets mapped
to the document root of a Web
application
OC4J service
Context Root - Jdeveloper: Right click on
Project Properties
Web Service Deployment
The exciting bit…
Web Service Testing
Web Service testing
Enter data through the form or raw XML.
Click Invoke (not shown)
Web Service testing
Results
The not so exciting part as it has done
nothing.
Web Service code
Combination Java and PL/SQL
Add some code to our Impl.java file.
Could do some jdbc calls to Oracle to
pass the data to pl/sql for further
processing.
Could use java to manipulate the
incoming data.
Web Service code
Send a response back
Our current Java stub created from the
wizard
public CreateFinancialProjectResponse
createFinancialProject(CreateFinancialProject parameters) throws
IRISServiceFaultContract {
return null;
}
Web Service code
Reponse code added
public CreateFinancialProjectResponse
createFinancialProject(CreateFinancialProject parameter rs) throws
IRISServiceFaultContract {
CreateFinancialProjectResponse response ;
response = new CreateFinancialProjectResponse(); //initialise it
CreateFinancialProjectOutcome outcome;
outcome = new CreateFinancialProjectOutcome(); //intialise it
//set the values
outcome.setErrorMessage("ALL WAS GREAT");
outcome.setSuccess(true);
response.setCreateFinancialProjectResult(outcome);
return response;
}
Web Service code
Deploy and test it