NodeJS soap not working, HTTP input works fine

I have SOAP server enabled on NodeJS. When I test using Postman the response is an error:

Cannot find undefined action

using URL: http://localhost:8080/soap/ISoapAct

Strangely enough it works fine on the old HTTP input using

http://localhost:8082/soap/ISoapAct

Should the URL be different? Are there different Headers?

For the NodeJS server, the wsdl is accessed with :

http://[URL]:[PORT]/soap/ISoapAct?wsdl

The actual endpoint is displayed in the NodeJS log (and in the console) when the service starts:

image

this is interesting, my SOAP server is running on a different port according to the log:

2024-05-29T08:12:00.350 ppNode - Soap service loaded correctly, wsdl is at http://localhost:9090/soap/ISoapAct?wsdl

shouldn’t this be 8080? I tried to open above url … unable to connect so the server is not listening on 9090 …

I tried to connect via 8080 for the wsdl, this works fine. However the error “Cannot find undefined action” remains.

FYI: I’m using the exact same Postman request to send the SOAP message to 8080 NodeJS and 8082 HTTP input.
The HTTP input works fine, the NodeJS input gives me the error.

User used has Admin rights in Workflow.

Are you sure you have sent your configuration to the Workflow Server? Because from these screenshots, it looks like the configuration that the server is running uses port 9090 for NodeJS (which is the default value after installation), while the configuration you’re editing is setting it to port 8080 (which by default, is the port for the HTTP Server).

Yep I’m sure, just in case sent it again … issue remains. As is the 9090 port message in the log.

[2024-05-29T12:53:20.692] [INFO] ppNode - Creating Soap services
[2024-05-29T12:53:20.692] [INFO] ppNode - Soap service loaded correctly, wsdl is at http://localhost:9090/soap/ISoapAct?wsdl

Oh you’re right, the log is incorrect !!!

I just changed my NodeJS port to 9091, and the log still states - incorrectly - that the wsdl is available on port 9090. I will enter a ticket in our systems to have this corrected.

However, I can now access the wsdl just fine at http://localhost:9091/soap/ISoapAct?wsdl. I can do this both from a browser (Edge & Chrome) as well as from the Thunder Client in VSCode (which I use instead of Postman).

In your case, if port 8080 refuses to Connect from any client application, I would look at the Windows firewall to make sure that inbound TCP communications are allowed on that port.

It does connect as it gives me an error response:

http://localhost:9091/soap/ISoapAct?wsdl also works in my case, it just cannot find the requested action?

@sybren.kuperus: that URL is meant for accessing the WSDL (which is required by SOAP clients), not to submit jobs!

To submit a job, please read the documentation for the SubmitJob() method, which should provide you with enough information to perform the call from Postman or from any other SOAP client.

Yes that’s clear to me :wink:

This is the Postman request:
image

OK, so I’ve just run a full test here and I’m not happy… :frowning:

The NodeJS SOAP server appears to be configured to work on port 9090 only. I was able to submit a job using that port, but not with any other port.

No one noticed this problem until this thread.

I will refrain from having the culprit covered in tar and feathers and instead I will write up a ticket for R&D to fix the issue. In the meantime, you will have to either continue using the HTTP Server for SOAP communications, or keep the NodeJS server on port 9090.

I’m really sorry about not finding this out earlier.

Clear! Thx for your support!