TranscendsLLC/rifidi

ALE services not working on Linux

Opened this issue · 3 comments

When Rifidi Edge Server (version 3.8.1) is started in Linux, the SOAP HTTP services don't work. Server gives status 500.

For example getting this URL http://localhost:8112/aleservice gives status 500 and body:

<ns3:Fault xmlns:ns3="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>ns3:Client</faultcode>
<faultstring>Cannot find dispatch method for {}</faultstring>
</ns3:Fault>

Getting http://localhost:8112/aleservice?wsdl gives correct WSDL.

Posting getStandardVersion request gives also status 500 and body:

<ns3:Fault xmlns:ns3="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
   <faultcode>ns3:Client</faultcode>
   <faultstring>Cannot find dispatch method for {http://schemas.xmlsoap.org/soap/envelope/}Envelope</faultstring>
</ns3:Fault>

Tried with Ubuntu and Debian. Tried with JDK 1.8 x64, JDK 1.8 x86 and JDK 1.7 x86.
No problem when running on Windows.

Found the solution:
HTTPBinding.HTTP_BINDING endpoint doesn't work on Linux and even on Windows.
SOAPBinding.SOAP11HTTP_BINDING does work on Linux and Windows.
But I left the OS check in place nevertheless.

Thanks for tracking this down, do you have a PR for it? I'll be doing some upgrades soon, including fixing the log4j security issue and I'll look at what you have submitted to bring into an upcoming release.

Hi @mattrifidi - this is the PR. I now recrated a branch and pull-request #7 to solve this and also make the hostname configurable. Documentation says it should be possible, but it wasn't. We need to access ALE services from other machine, hence need to be able to pick public hostname/IP.