Thursday, 10 August 2017

Overcome - Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)

Hi All,

Yesterday when I was working with Human task component I came across this issue while deploying

Issue:

----Deployement incomplete ----
"Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)"

I tried different methods to overcome this issue - change proxy setting etc.

Try this:

This technique worked for me- 

We can deploy the project at application level as ".ear" file and deployment is getting successful.

Steps: right click on application-- deploy -- .ear file

The reason is .ear file will have all the classes required for successful deployment when compared to .war file.

Hope this helps.. !!


Drop your issues/other solutions if you have any in the comment section!!

Let's Explore SOA!!






Tuesday, 8 August 2017

Creating Abstract WSDL in JDev 12c

Hi All,

In my last post WSDL's I have clearly explained the difference between Abstract and concrete WSDL's.

In this post I will create an abstract WSDL in JDev 12c IDE.

Demonstration:

Use case - Creating abstract WSDL having i/p, o/p messages and a port type having 2 operations (Addition, Multiplication) under it.
entering 2 input say a,b then based on our operation say addition/multiplication the result must be obtained.

Follow the below steps to create the same:

1. Create a new SOA Project, create a new WSDL document.


2. Move your .xsd file from top to the bottom side as shown below. It is required to map the message parts.


3. Under Message section click "+" to create new message and under input message map your elements from xsd.


4. Similarly do the same for output message.



5. We can define similarly n number of messages and map from xsd accordingly. In this case we have defines our message section as below:

6. Now we can define Port Type.( here I have used calculate as Port type name)




7. Now add Opertaions - Addition  and Multiplication with appropriate input and output message.




 8. Now our abstract wsdl will look something like this.

And to mention not.. "Save all" and yes its complete. 

Now we have created Abstract WSDL as per our use case.

We will be using this wsdl in our upcoming pick activity demonstration project.


Thanks!!

Keep Learning....

Let's Explore SOA....

- Krithika 









Abstract and Concrete WSDL

Hi All,

Got some time to write this post on Abstract and Concrete WSDL and how they are different.

WSDL ( Web service description Language ) will mainly contain below sections:

Types: Defines the data type definitions for messages that will be exchanged by the web service. Generally defined from a schema (XSD)

Message: Defines the actual set of messages that will be exchanged.

Port Type: Defines abstract Operations available to do the the transactions.

Bindings: Defines the message format and protocol information for the Operations defined by Port Types

Services: Defines the endpoint where services are to be exposed.

So if a WSDL has Types, Message, Port Type then it can be classified as Abstract as it does not contain any information related to communication protocol/where the services are exposed.

On the other hand if a WSDL has all the parts of Abstract WSDL including Bindings and Services it is nothing but Concrete WSDL. It can be used to connect to external services.

Abstract WSDLs are of great help in solving service dependency issues while developing and in run time scenarios.

Hope this is clear!!

Let's Explore SOA..... :)


Friday, 4 August 2017

Using Debugger in JDev 12c

Hi All,

In this post I will take up the new feature introduced by Oracle in SOA 12c release. 
"Debugger" makes developer life simpler by providing us platform to test and debug our composite in Jdev IDE itself.

Before in 11g we followed steps like Develop the composite in JDev, deploy it to application server, Test it and debug the composite with the flow trace.

With the introduction of Debugger lot of time and complexity has got reduced drastically.

So lets now see how to use devugger feature in our hello_world Composite. 

Demonstaration:

Use Case: I have created a hello_world project which takes input from the user and provides the output as Hello concatenated with the input that user provides.

Now we can follow the below steps to test this composite using debugger in JDev 12c IDE and can debug if we find any errors:

Steps:

1. Navigate to the project - select Debug option 


2. In the next step we get a wizrd , where in we need to fill host and port number (5004 usually)


3. Moving forward, Create breakpoints pair and toggle breakpoints in your .bpeljust showed as below:





4. Our composite will look like this now:


5. In the next step we can Initiate WS Debugging by right clicking on the context


6. Http Analyzer wizard opens up asks for input payload ( Here input - India), once request is sent use "Step Over in .jpr" button to test the composite step by step.
Follow below steps:




 This is Step in over hello_world.jpr button










7. Finally in Http Analyzer we can see our test result: Hello gets concatenated with the input string India


8. Forget not to stop the debugger, Otherwise in deug mode we cannot be able to edit the compoiste. So how can we stop the debugger? Follow below steps:





Yes Now we know how to test our composite in Jdev 12c using Debugger.

Cheers!!

Let's Explore SOA..... :)

- Krithika 



Wednesday, 2 August 2017

Working with Db Adapter - Select Operation

Hi All,

Hope everyone is clear about creating DataSource and configuring Outbound Connection Pool.

Now lets use DB adapter in our project.

Demonstration:

In this project I am creating a Syncronous BPEL, which takes Employee_id as input and retrives FirstName and LastName of the person with that Employee_id by quering Database.

So let's begin:

1. Create a new SOA Proj, I have given a name Db_Select_Proj.

2. Create a empty composite, insert bpel component, make it as synchronous and provide input and output variable.


 3. Modify .XSD file as per our use case: input - Employee_id and output - FirstName and LastName

<?xml version="1.0" encoding="UTF-8"?> 
<schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/KMBAppsPractice/Db_Select_Proj/BPELProcess_db_select"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="process">
<complexType>
<sequence>
<element name="employee_id" type="integer"/>
</sequence>
</complexType>
</element>
<element name="processResponse">
<complexType>
<sequence>
<element name="firstname" type="string"/>
                                <element name="lastname" type="string"/>
</sequence>
</complexType>
</element>
</schema>

4. Composite will look something like this at this stage
 


5. Now we can add Db adapter to external reference swimlane and start configuring it as below



Note: In this Step I have given JNDI name as done in previous post

Performing Select operation

Choose your required table from DB

Here we can click on add to create a new search Parameter "id" in this case.

where condition: query key is equal to parameter


Select query generated as per our need

6. Wire BPEL to DB adapter and proceed to edit BPEL component. Add invoke activity to connect with Db adapter.


7. This prompts a wizard, here create new input and output variable for invoke activity.



8. Drop Assign activity to map input variable to invoke input variable.





 9. Similarly drop another assign to map invoke_output variable to output variable.


10. Save all and deploy to Weblogic Application Server.

Testing the deployed Composite:

Open the composite, Provide the input - In this case Employee_ID is the input
Click on Test Webservice. We can get our response. 


 We can verify the same in Database-
 Employee_ID 103 is Alexander hunold


We can also check step by step flow of our bpel process
So,Yes it's a succesful instance! We got the correct data queried from db through our composite.

Hope this post will help many to understand how to use DB adapter while developing composite.

Cheers!! 
To the next....... :)

Please comment if you get any doubts/queries related to this post or using DB adapter. I will be happy to help.