Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Dynamic routing in OSB - getting $operation value

2719324Jul 30 2014 — edited Aug 7 2014

I am trying to create dynamic routing in OSB to route my request to three business services. In my case, I have one webservice that has three different operations. So I created three different business services, A, B and C on that webservice(on the same endpoint URI). Now when I route my request to these businesses services based on routing rule, I want to call operationA in business service A, operationB in business service B and operationC in business service C. Here is my dynamic routing expression:

<ctx:route>

<ctx:service>{$routingTable/mapping[event/text()=$event]/service/text()}</ctx:service>

<ctx:operation>{$operation}</ctx:operation>

</ctx:route>

Here is my routing rule:

<mappings>

    <mapping>

        <event>A</event>

        <service>DynamicRoute/BusinessService/businessA</service>

        <operation>operationA</operation>

    </mapping>

    <mapping>

        <event>B</event>

        <service>DynamicRoute/BusinessService/businessB</service>

        <operation>operationB</operation>

    </mapping>

    <mapping>

        <event>C</event>

        <service>DynamicRoute/BusinessService/businessC</service>

        <operation>operationC</operation>

    </mapping>

</mappings>

For some reason this doesn't work for me. It throws this error "Error preparing message for dispatch". Looks like its not getting the value for $operation in dynamic routing. I am not sure if getting the webservice operation(method) name from the routing rule is the correct approach. Could somebody help me in this? Thanks.

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 4 2014
Added on Jul 30 2014
16 comments
6,686 views