Question
· 13 hr ago

How to override the port used on a SOAP operation

WSDL for a CDC vendor was provided with a URL using a custom socket (non 443). Everything generated fine, but when making calls to their https:// URL that has their custom port in the URL - no response comes back. The assumption is, their server isn't even processing the request, as Postman does using the custom https://path.to.server:NNNN port in the URL.

I see with a normal web operation that uses %Net.HttpRequest overriding the port property is easily done - but no animal seems to exist for any generated SOAP Operation class. Is there a way to make a call in a SOAP operation using HTTPS but with a custom port? What needs to be overridden in the generated classes to do this? Is this even possible?

Thanks in advance!

Product version: IRIS 2024.3
Discussion (3)2
Log in or sign up to continue

In your generated (from wsdl) SOAP client class change the LOCATION class parameter with correct url including port number.

Another option is to set the Location property in your code when you use the client class, somthing like:

Set wsClient=##class(your.generated.SoapClient).%New()
Set wsClient.Location="https://path.to.server:NNNN/path.to.service"
Set client.SSLConfiguration ="SSLConfig"

Thanks!!

It's funny - I override the LOCATION parameter in the class, blanked out the URL in the operation, recompiled and re-tested, but still get a no response from the target. Postman I can at least see a SOAP Fault. So I have really no way to tell what URL it is actually using. Even when I set ISCSOAP with "ios" logging flags, IRIS refuses to tell me the ACTUAL URL it is trying to use.

Would you or anyone know the secret of how to get ISCSOAP to tell me explicitly the URL it is trying to use?