Workaround Option 1
You can create two different Virtual Services. That is, you can expose this Native Service as two Virtual Services -- one for each operation that needs to be invoked:
A service for the
getXXX operations (for example, a Virtual Service called
VS_Customer).
A service for the
ping operation (for example, a Virtual Service called
VS_ping).
To create a different Virtual Service for each operation
1. Create a Virtual Service for the Native Service CustomerRefService and name it VS_Customer, for example.
2. Configure VS_Customer and configure its routing protocol as Straight Through.
3. Specify the routing address as http://... /v4/CustomerRefPort (for CustomerBinding, where all the getXXX operations are supported).
4. On the Virtual Service's Summary profile, click on the URL for the WSDL (this a copy of the Virtual Service template WSDL, very similar to the original Native Service WSDL), and download or save it to your local file system.
(Make an additional copy of this downloaded WSDL in case you make a mistake in your editing.)
5. Remove the following elements from the WSDL and then save it:
SystemPortType SystemBinding SystemPort Note:
Make sure your browser or XML tool can read this modified WSDL without any syntax error.
6. Attach the modified WSDL file to the Virtual Service by selecting the Attach WSDL command in the Virtual Service's Actions menu.
7. Create another Virtual Service for the Native Service CustomerRefService and name it VS_ping, for example. Repeat the above steps but with the following differences:
Specify the routing address as
http://... /v4/SystemPort.
Remove the following elements from the WSDL:
CustomerPortType CustomerBinding CustomerPort 8. Deploy both Virtual Services to Mediator.