Posts

Passing/Receiving HTTP header in SOA BPEL

Image
In this example we will explore how to pass or receive the parameters from HTTP header. We will explore below two scenarios, To receive the HTTP header from SOAP request. To pass the HTTP header while calling soap service. SOA version used: 12.1.3c To receive the HTTP header from SOAP request: First we need to add the property “oracle.webservices.http.headers” under binding.ws in Service element in composite.xml. This property contains the comma separated parameters that we are expecting in request. Example,  ENV,VERSION. <binding.ws port="http://xmlns.oracle.com/SOA_Learning/HTTPHeader/HTTPHeaderTest#wsdl.endpoint(httpheadertest_client_ep/HTTPHeaderTest_pt)">          <property name="oracle.webservices.http.headers">ENV,VERSION</property> </binding.ws> Now in BPEL source under receive activity, we need add <fromProperties> element which will copy the parameters from HTTP heade...

Configuring REST service in SOA using HTTP Adapter - GET/POST

Image
In this example, we will explore how to configure REST service in SOA for both GET and POST request. For this example, we will create a XSD which takes firstname and lastname as input and returns Full Name as output. First, we will create a new project call, RestNamingService. Our XSD will look like below: <?xml version="1.0" encoding="windows-1252" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.example.org"             targetNamespace="http://www.example.org" elementFormDefault="qualified">   <xsd:element name="request">     <xsd:annotation>       <xsd:documentation>A sample element</xsd:documentation>     </xsd:annotation>     <xsd:complexType>       <xsd:sequence>         <xsd...

Oracle SOA suite Packaging

Image
In this post we will go through some basic steps to automate the daily tasks i.e. compilation and deployment of SOA projects. In order to deploy the SOA projects on server we usually follow below two approaches: 1. Compile and Deploy using JDEV 2. Compile and Export the SAR using JDEV. Deploy using EM console. The above is adopted in development phase. In testing and production we need to automate this deployment activities in order to avoid any human error. SOA suite provide us the ANT scripts to perform this tasks. This same scripts are used by JDEV to perform the task like deploy/compile etc. We will now go show the steps to use some basic commands: I am using Oracle SOA 12c environment. Pre-requisites: Configure the ANT_HOME, JAVA_HOME and PATH variables.   1.    ANT_HOME = (MIDDLEWARE_HOME)\Middleware\Oracle_Home\oracle_common\modules\org.apache.ant_1.9.2.    PATH=%PATH%;(MIDDLEWARE_HOME)\Middleware\Oracle_Home\oracle_common...

Oracle BPM 12c Process Asset Manager Feature

Image
In this post we will cover Oracle BPM 12c feature called PAM i.e. Process Asset Manager. The PAM allow seamless collaboration between multiple participants in BPM like Business Analyst and BPM developer. It allow us to share the BPM artifacts seamlessly between BPM process composer and BPM Studio (JDEV). The artifacts are maintain in in-built SVN. To illustrate in more details let’s take an example: As a part of BPM process analysis and implementation, Business Analyst design the process in BPM composer. Once the process is completed from BA, it is given to Developer for implementation. During implementation, there can be multiple to and from between Developer and the BA. Thus the latest BPM artifact need to be available to both users i.e. BPM composer users and BPM studio users. In below example we will see how the process created in BPM composer can be shared with BPM studio user using PAM. 1. Login to BPM composer 2. Create a new space “order” 2. Clic...

JAVA embedding in Oracle SOA 12c

Image
In this post we will explore how to EMBED Java or call Java API from Oracle SOA BPEL process. In order to demonstrated this, I have created a simple JAVA project with 3 classes. 1.        Account.java -> This class represent Account DTO       2.       Party.java -> This class represent a party (customer) DTO       3.       GetNumber.java -> This class contains the method that takes Party DTO as input and apply some business logic and return party’s AccountDTO in response. public Account getNumber(Party party) The above classes are created to simulate the calling of actual business logic API’s. Account.java Party.java GetNumber.java public class Account {     public Account() {         super();     }     String account;     public v...

configuring the http proxy in weblogic

To configure the proxy in weblogic configure the below properties in setDomainEnv: -DproxySet=true -Dweblogic.webservice.transport.http.proxy.host=proxy -Dweblogic.webservice.transport.http.proxy.port=80 -Dweblogic.webservice.transport.https.proxy.host=proxy -Dweblogic.webservice.transport.https.proxy.port=80 -Dhttp.proxyHost=proxy -Dhttp.proxyPort=80 -Dhttp.nonProxyHosts="172.16.40.84|172.16.40.63" -Dhttps.proxyHost=proxy -Dhttps.proxyPort=80 -Dhttps.nonProxyHosts="172.16.40.84|172.16.40.63" If the proxy is accepting username/password Or if you face the below issue, weblogic.net.http.HttpUnauthorizedException: Auth scheme Negotiate is not supported! then you may need to write the custom authenticator for calling the service behind proxy. Please find the below example for custom proxy authenticator: Write the class that extends java.net.Authenticator. *** import java.net.Authenticator; import java.net.PasswordAuthentication; public class P...

Configuring Human Task Webform URL in BPM/SOA

Image
For every human task, the webform URI i.e. Hostname and Port can be configure using below two methods. 1. Manually changing or correcting the URI in EM console. 2. Specifying the Hostname and Port in hwtaskflow.xml of UI project before deployment. But, many times, this configuration is missed during deployment time.  In some cases, we there is a cluster environment with HTTP server configured over SSL. In this case, we do not want the user to use the HTTP URL, or manually change the protocol and Port to Http. In order to handle the above situation, we can configure the URL permanently in SOA workflow properties.  SOA Administration->WorkFlow Properties-> Look for  FusionAppsFrontEndHostUrl property. Configure this property to the hostname and port which we want the webform to always render on. Once this property is configured, even if we missed to configure human task URI or configure the hostname incorrectly. The server will redirect the req...