Monday, November 10, 2014

Referencing the services between OSGI bundles – AEM

Referencing the services between OSGI bundles – AE

This post explains how to refer the services between OSGI bundles in Adobe Experience Manager.

Export-Package:

Bundles may export zero or more packages from the JAR to be consumable by other bundles. The export list is a comma-separated list of fully-qualified packages, often with a version attribute. If not specified, the version defaults so 0.0.0.

In the target bundle the packages contains the required services and the classes exposed to the other bundles should be exported.


Import-Package 

The Import-Package header is used to declare dependencies at a package level from the bundle. At runtime, the bundle will be wired up with whatever (compatible) bundle offers the package.

In the source bundle the packages contains the required services and classes referred from other bundle should be imported.

Thursday, September 25, 2014

Not able to create the session in OSB console - Could not create directory /osb/config/sessions/weblogic

Not able to create the session in OSB console - Could not create directory <DOMAIN_HOME>/osb/config/sessions/weblogic

Sometimes we may receive the error "could not create directory <DOMAIN_HOME>/osb/config/sessions/weblogic" in the OSB console while trying to create the session.



There will be a multiple reason for this issue, in our case the root cause of the exception is the space is full for the mount  point


How to Fix

To resolve the issue add extra space to the mount point or clear some of the unwanted files and make the required space.

Monday, September 22, 2014

XML-22036: (Error) Cannot convert result tree fragment to NodeSet - Oracle SOA Suite 11g

XML-22036: (Error) Cannot convert result tree fragment to NodeSet - Oracle SOA Suite 11g

We are getting the below exception in runtime while passing the parameter and accessing the same from XSLT in Oracle SOA Suite.




The following exception occurred while attempting to execute operation copy at line 139
-<exception class="com.collaxa.cube.xml.xpath.XPathException">
-<parsererror style="display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black">
<h3>This page contains the following errors:</h3>
<div style="font-family:monospace;font-size:12px">
error on line 7 at column 1: Extra content at the end of the document
</div>
<h3>Below is a rendering of the page up to the first error.</h3>
</parsererror>
XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is ora:doXSLTransformForDoc('xsl/DistinctPayload.xsl', $inputVariableLocal.payload, 'FlowSubscriberVar2', $FlowSubscriberVar2).
The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: oramds:/deployed-composites/default/PPDSOM_EventManager_rev1.0/xsl/DistinctPayload.xsl<Line 8, Column 82>: XML-22036: (Error) Cannot convert result tree fragment to NodeSet..
Check the detailed root cause described in the exception message text and verify that the XPath query is correct.
-<stack>
<f>com.collaxa.cube.xml.xpath.BPELXPathUtil.evaluate#262</f>
<f>com.collaxa.cube.engine.ext.bpel.common.BPELWMPHelper.evalFromValue#339</f>
<f>com.collaxa.cube.engine.ext.bpel.v1.wmp.BPEL1AssignWMP.__executeStatements#137</f>
<f>com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform#158</f>
<f>com.collaxa.cube.engine.CubeEngine.performActivity#2543</f>
<f>com.collaxa.cube.engine.CubeEngine._handleWorkItem#1165</f>
<f>com.collaxa.cube.engine.CubeEngine.handleWorkItem#1071</f>
<f>com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal#73</f>
<f>com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage#220</f>
<f>com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory#328</f>
<f>com.collaxa.cube.engine.CubeEngine.endRequest#4430</f>
<f>com.collaxa.cube.engine.CubeEngine.endRequest#4361</f>
<f>com.collaxa.cube.engine.CubeEngine._createAndInvoke#698</f>
<f>com.collaxa.cube.engine.CubeEngine.createAndInvoke#555</f>
<f>com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke#673</f>
<f>com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke#293</f>
<f>...</f>
</stack>
</exception>

Wednesday, September 17, 2014

SCAC-50012 - Oracle SOA Suite 11g

SCAC-50012 - Oracle SOA Suite 11g

This error will occur most of time compiling the Oracle BPEL component in Oracle SOA Suite with java embedded activity, If there is any issue with the java code this exception will be thrown.

We were facing the SCAC-50012 exception with the following code.

String orderID  =  ((oracle.xml.parser.v2.XMLElement) getVariableData("inputVariable","payload",'/client:process/client:input')).getFirstChild().getNodeValue();
String Title=("OrderID: " +orderID);                                        
setCompositeInstanceTitle(Title);

The actual  issue with the XPATH expression specified within the single quote(copy paste issue), the compilation became successful after converting the single quotes to double quotes.

String orderID  =  ((oracle.xml.parser.v2.XMLElement) getVariableData("inputVariable","payload","/client:process/client:input")).getFirstChild().getNodeValue();
String Title=("OrderID: " +orderID);                                        
setCompositeInstanceTitle(Title);

Monday, September 1, 2014

Dynamic Endpoint Implementation through DB Table –Oracle SOA Suite

Dynamic Endpoint Implementation through DB Table –Oracle SOA Suite

The below document explain the approach to store change the endpoints of the service dynamically in Oracle SOA Suite.



Download Load_Balancer_Probe_SOA-INFRA.pdf

Friday, August 29, 2014

How to create Repository Nodes thorough Java API in Adobe Experience Manager(AEM)

How to  create Repository Nodes thorough Java in Adobe Experience Manager(AEM)

We can create the repository nodes inAdobe Experience Manager(AEM) through Java API , the below code snippet will help us to create the nodes in Adobe Experience Manager(AEM).

private static final String BASE_PATH = "/etc/commerce/products"; // the folder under which the nodes should be created

//Get the Resource resolver from request - Creating the node through Servlet
ResourceResolver resolver = request.getResourceResolver();

//Get the Resource resolver through resolver factory - Creating the node through Service
@Reference
private ResourceResolverFactory resolverFactory;//Get the resolverFactory reference in the service

ResourceResolver resolver = resolverFactory.getAdministrativeResourceResolver(null);//Get the resolver

//Get the session
Session session = resolver.adaptTo(Session.class);

//Create the Node
Node node = JcrUtil.createPath(BASE_PATH+<<Node Name>>, JcrConstants.NT_UNSTRUCTURED, session);

//Set the required properties
node.setProperty("name", "sample");
node.setProperty("description", "sample");

//Save the session
session.save();

While creating the NT_UNSTRUCTURED node make sure the parent folder is sling:folder, the node will not be created if the parent node is of type nt::folder.

Friday, July 25, 2014

Handling Parallel events through OnEvent event handlers – Oracle SOA Suite

Handling Parallel events through OnEvent event handlers – Oracle SOA Suite

This post will explain, how to handle Parallel events through OnEvent event handlers in Oracle SOA Suite 11g



Download Handling_Parallel_events_ OnEvent_event_handlers_V1.pdf