I recently worked with a colleague on an issue that he was seeing when trying to connect into a ServiceNow instance via SOAP.

He would import the WSDL file into SOAP-UI or any other SOAP client using a WSDL URL similar to:
https://myinstance.service-now.com/mytable.do?WSDL

The WSDL would import properly and load up all of the available SOAP functions. However, when he would try to execute one of the functions, he would get the following response (trimmed down a bit for this article):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
    <head>
        <title>Apache Tomcat/7.0.16 - Error report</title>
    </head>
    <body>
        <h1>HTTP Status 401 - </h1>
        <HR size="1" noshade="noshade">
            <p>
            <b>type</b> Status report</p>
            <p>
            <b>message</b> <u>
        </u>
    </p>
    <p>
    <b>description</b> <u>This request requires HTTP authentication ().</u>
</p>
<HR size="1" noshade="noshade">
    <h3>Apache Tomcat/7.0.16</h3>
</body>
</html>

The user was including the proper authentication credentials and we were able to verify that those credentials had the necessary roles. However, something was still amiss.

After careful observation, we noticed that the WSDL was stating that the SOAP Endpoint was available via “HTTP” instead of “HTTPS”. This was due to a misconfiguration one a switch in one of the data centers.

There were two ways the customer could immediately fix this issue so that they could move on with their integration without having to wait for support to manage the issue.

1) They could manually change the endpoint in their SOAP client to be HTTPS instead of HTTP. However, they would need to do this for every SOAP client that was connecting into their instance. Not necessarily the best route to take if they have many integrations.

2) They could create (or set) the following property with their base url as instructed by the wiki:

com.glide.soap_address_base_url

Once either of these solutions were implemented, the customer was once again up and running.