OFM Product:Oracle Service Bus 18.104.22.168
We have Search Service Provider which accepts the search term in a query string and the URL to access the REST Service is http://localhost:8085/search?term=<Search query term>&range=1;2. We are using OSB as the Service Virtualization layer.
Service Consumer <-GET->OSB<-GET--> Service Provider
The Service Provider accepts the URL encoded query string only and the Service Consumer sends the URL encoded Search query term, however OSB seems to convert the URL Encoded String to XML Encoded String when it enters the Proxy Services and when it leaves the Business Service it is XML decoded and as a result the Search query term get truncated. Let me explain with an example with SOAP UI acting as a Service Consumer. If we pass "Tom & Jerry" as the search term, below are our findings.
/search?term=Tom & Jerry&range=1;3
GET Request Sent from SOAP UI captured via Fiddler to the OSB Service:
Inbound Variable in Proxy Service:
<http:query-string xmlns:http="http://www.bea.com/wli/sb/transports/http">range=1;3&term=Tom & Jerry</http:query-string>
<http:parameter name="range" value="1;3"/>
<http:parameter name="term" value="Tom & Jerry"/>
GET Request Sent from OBS via Business Service captured via Fiddler to the Service Provider:
Ideally we would want OSB to be a pass through and have the same encoding format as that provided by service consumer. Please let me know the workaround for this?