Node RED SOAP, change to show HTTP response


#1

I’m sending an asynchronous SOAP request where the SOAP server does not give a response. The message goes through fine but I get an error “Cannot read property ‘Fault’ of null” since there is not response payload. Is it possible to change this somehow to get the HTTP response instead?

Here’s an image of a failed send that gives an error of “Server Error” and a completed send that gives an error of “Cannot read property ‘Fault’ of null.”

I’m using node-red-contrib-soap-filesupport and a local wsdl file.

Thanks,
-Tim


#2

Is the ‘error’ coming from the SOAP node or the Debug node?
Have you set the debug node output to show ‘complete msg object’?


#3

The error is coming from the SOAP node. Yeah the above image is the complete msg object from debug.


#4

Looks to me like this is a bug with the node - you will need to report it to the node author and hope for them to fix it, use a different node that works, or fork and fix the node yourself.

As an aside, the Opto22 HttpPostFromStringTable comamnd has the same issue, it waits for a payload response even when the server returns status 204 No Content and the command will wait for the timeout interval before responding. This is a common scenario on REST services. I’m waiting for the fix on that one.


#5

Ah, fair enough. Thanks


#6

How do I upload the new version of the node? I saw there’s 3 options palette, npm, or application but I don’t have access to the latter two (I think) and I can’t find how to add to the palette.


#7

Try this forum post… Lets know either way if you have any issues.


#8

Yeah, sorry I wasn’t very specific. I made a modified version of the node, but I can’t figure out how to use it.


#9

Oh, right… yeah, Okay.
Do you have a shell license for your groov EPIC?
https://www.opto22.com/products/product-container/groov-lic-shell


#10

Oh nice, no I don’t have one but I’ll get it. Can I use the npm commands from there?


#11

Yes. Thats the only way to install your version of the module.


#13

Update:
I got npm and SSH working and figured out how to install custom files. I had much better luck doing a local install into /home/dev/.node-red/ than trying to do a global install. It’s a bit annoying that I can’t do updates for the custom node through the Node Red palette, but it can still be updated though by using SSH to do a “sudo” npm install. The palette can see that there is an update available in npm, but it doesn’t have the write permissions to make the update (hence the need for sudo).

The custom node is working good by taking response.statusCode and turning it into msg.statusCode. I’m now getting 200 (ok) and 500 (server error) codes back, which is good.

Thanks for all the help


#14

Hey there! I’m still working on my soap request as a client same case I use local wsdl file.
I’m still receiving this error
Service Call Error: Error: Text data outside of root node.
Line: 4
Column: 23
Char: .
any idea?


#15

Take a look at the content of the request you are sending. The error message is saying you possibly have a period character outside the root node (The <soap:Envelop> </soap:Envelop>) Based on the error message, this is most likely after the </soap:Envelop>.