0

I am having a bit of an issue, and I hope someone may be able to help. Our company is switching from npm soap library to strong-soap for internal reasons. We are interfacing with an old server (soap 1.1) that we prefer not to modify. We can set up the client perfectly with the soap library; however, with strong-soap, it appears we get some questionable wsdl returned. If we call describe on the soap client we get all the proper ins and outs. However, if we do a describe on the strong-soap we get the return function with a slew of xml. I think the wsdl description coming back for the strong-soap must not be proper. I am wondering if strong-soap supports version 1.1.

If we call a method in the implementation of strong-soap, we get an error message “missing required input parameter”, which makes sense because the data returned from describe lists a giagantic xml description for the parameters. This is the reason I do not think the strong-soap supports an earlier version of soap.

For the soap libary

`

const authorization = `Basic ${base64.encode(`${userId}:${password}`)}`
const wsdlOptions = createWsdlOptions(authorization)
client = await soap.createClientAsync(url, wsdlOptions)
client.addHttpHeader('Authorization', authorization)
client.setEndpoint(url)
client.on('soapError', (e, _eid) => {
   error(`SOAP client error: ${e.message}`)
})

`

For the strong-soap libary `

return new Promise((resolve, reject) => {
        
    const authorization = `Basic ${base64.encode(`${userId}:${password}`)}`
        const wsdlOptions = createWsdlOptions(authorization)    
    
        soap.createClient(url, wsdlOptions, (err, c) => {
            if (err) {
                reject(err)
            } 
            
            that.client = c
            that.client.setSecurity(new soap.BasicAuthSecurity(userId, password))
            that.client.setEndpoint(url)
            that.client.on('soapError', (e, _eid) => {
                error(`SOAP client error: ${e.message}`)
            })
            resolve(c)
            
        })
    })

`

If I try a describe on the client

`

const description = client.describe()
console.log(JSON.stringify(description.CClmStatusWF.BasicHttpBinding_IClmStatusWF.readMyData)))
    

`

On the soap client i get {"input":{"p_sXMLParam":"xs:string"},"output":{"readMyDataResult":"xs:string"}}

However on the srong-soap I get a huge of xml file

Tom Lee
  • 11
  • 1
  • 3
  • Interestingly enough, I tried the tool soapui and I am getting the same result >>> Missing required parameter. – Tom Lee Nov 21 '22 at 22:41

0 Answers0