Consuming a SOAP Web Service with wrong service port address in WSDL

Certified Associate Developer

Let me set an example.

I have a SOAP Web Service “MyServer/MyWebService.asmx” with a returned wsdl with 2 ports with unreachable addresses (this could be because the web service was moved from an older infrastructure, or it is the developers terminal etc) as shown below:

<wsdl:service name="MyWebService">
	<wsdl:port name="MyWebServiceSoap" binding="tns:MyWebServiceSoap">
		<soap:address location="https://UnreachableServer/MyWebService.asmx" />
	</wsdl:port>
	<wsdl:port name="MyWebServiceSoap12" binding="tns:MyWebServiceSoap12">
		<soap12:address location="https://UnreachableServer/MyWebService.asmx" />
	</wsdl:port>
</wsdl:service>

setup in Appian in the expression editor:

webservicequery(
wsConfig: a!wsConfig(
wsdlUrl: "https://MyServer/MyWebService.asmx?wsdl",
service: "{http://tempuri.org/}MyWebService",
operation: "{http://tempuri.org/}GetMyData",
port: "MyWebServiceSoap12"
),...


when using one of the service ports by name (for example “MyWebServiceSoap12”), as expected the following error occurs:

Caused by: com.appiancorp.ws.RetryableWSException: The maximum time to establish a connection with the remote server was reached. Location: https://UnreachableServer/MyWebService.asmx (APNX-1-4045-003)
...
Caused by: org.apache.axis2.AxisFault: Connect to UnreachableServer timed out
...
Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to UnreachableServer timed out


How can I set the real address of the web service, without tampering the wsdl file?

Thank you

  Discussion posts and replies are publicly visible