Oracle SOA Suite Online Training

Interested in learning Oracle SOA Suite 12c?
Learn from the author of this blog!
A complete and comprehensive course on the #1 platform on SOA - Oracle SOA Suite

Click here to find the complete course details
Click here to check the first session on Oracle SOA Suite 12c

================================================================================================

OSB Proxy Service Error :: Two or more operations expect the same incoming message

When you create a proxy service in OSB, sometimes you may encounter the following desing time error

[OSB Kernel:398034]Two or more operations expect the same incoming message, you must use a selector different than message body xxx.proxy /xxx/business Unknown ALSB Conflict


This happens when your wsdl has multiple operations and the types of atleast two of these operations share a similar message type. Operations are selected based on a particular algorithm, so in this case, the default Operation Selection Algorithm 'SOAP Body Type' won't work as the operation message types are not unique. In such cases, you need to specify a different selection algorithm like 'SOAPAction Header'


Go to Operation tab --> select 'SOAPAction Header' - provided the operations in the wsdl define SOAPAction


Check my next blog if the wsdl doesn't have or a blank SOAPHeader element

Unable to open application in EM :: javax.el.ELException: oracle.sysman.emSDK.app.exception.EMSystemException

Sometimes, opening a deployed application doesn't appear in EM under soa-infra tree, but exists in the list when you click on the partition. And when you click on the project from the list, it gives an error with a pop-up with a similar error as below

ADF_FACES-60096:Server Exception during PPR, #5[[
javax.el.ELException: oracle.sysman.emSDK.app.exception.EMSystemException
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:298)
        at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
        at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
        at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
        at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
        at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:68)
        at org.apache.myfaces.trinidad.component.FacesBeanWrapper.getProperty(FacesBeanWrapper.java:58)
        at org.apache.myfaces.trinidad.component.UIXTable$RowKeyFacesBeanWrapper.getProperty(UIXTable.java:630)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.getProperty(UIXComponentBase.java:1353)
        at org.apache.myfaces.trinidad.component.UIXIterator.getValue(UIXIterator.java:722)
        at org.apache.myfaces.trinidad.component.UIXCollection.__flushCachedModel(UIXCollection.java:1438)



Solution :: Just go to console --> Deployments --> stop & start the 'em' application

Now, you'll see all the deployments in the EM soa-infra tree, as well as you'll be able to open the project.

Assign not happening after XSL transformation

There are cases where a BPEL assign activity on a variable may fail(Selection Failure) after a XSLtransform activity on the same variable. Reason is that a transform activity doesn't create empty tags if the value is null. Hence, the variable will be updated with some missing tags(for null values) after transformation, and when you try to assign to such a tag, you will get an error.

Inorder to overcome this, if you feel you may get null values for a particular tag which you may want to assign later, then use an if condition to set it to empty text if the value is null. In such cases, the tag is created with empty value, so you can use it for assigning later.