Trouble calling webservices through SOAP

Machiel Treffers shared this question 7 months ago
Answered

Hi all,

I am experimenting a little with calling Yellowfin web services through SOAP. I find myself in some trouble with the SOAP envelope generated based on http://localhost:8080/services/AdministrationService?wsdl.


I did some troubleshooting and it seems that:

- Booleans with null value are not accepted. Adding option xsi:nil="true" solves the issue, but is not in accordance to the WSDL

- AdministrationSchedule seems to be invalid

I added both the default envelope (which is not working for me) and a modified version (that does work). I'd prefer not to make any modifications to the envelope, as it is currently auto generated by Python suds package, based on WSDL.

Could you elaborate on whether this is a known problem with the WSDL or some modification to my program should be made?

Thanks!

Best regards,

Machiel

Comments (8)

photo
1

Hi Machiel,

Apologies for a couple of days wait on the response here!

From a programming perspective, null values should generally be avoided where possible, and if you use a Boolean, it's best to write logic so that it defaults one way or the other, either true or false. A Boolean with a third value is not a true Boolean.

Can I ask what issues you are encountering with AdministrationSchedule? I see you have commented it out from your modified envelope.

Kind regards,

Chris

photo
1

Hi Chris,

Thank you for your reply.


When I include AdministrationSchedule in my envelope, the following error is returned:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Server.userException</faultcode>
         <faultstring>org.xml.sax.SAXException: No deserializer for {http://schedule.service.web.mi.hof.com}AdministrationSchedule</faultstring>;
         <detail>
            <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">yellowfin-1</ns1:hostname>;
         </detail>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>
Best regards,

Machiel

photo
1

Hi Machiel,

Which versions of Yellowfin and Apache Tomcat are you using with your instance? You can find out from the system's info.jsp page.

It may be that an update to either one or both applications will fix this, judging by the related articles found by searching that error in Google.

Kind regards,

Chris

photo
1

Hi Chris,

We are running Yellowfin 9.6.0 and Apache Tomcat 9.0.43

Best regards,

Machiel

photo
1

Hi Machiel,

I'm wondering if this is because AdministrationSchedule is actually an abstract class and probably shouldn't be part of the envelope anyway. If you ran a problem that generated an envelope, it may be that it's referencing this abstract class. If you check our Wiki page on Schedule Management Services, it shows how an AdministrationSchedule object can be initialised and the various available web services that can be called around the AdministrationSchedule object.

Let me know if that helps.

Kind regards,

Chris

photo
1

Hi Chris,

Thanks for your answer, I'll have a look at that. I've also been looking into REST API and that seems fit our use case as well.

Best regards,

Machiel

photo
1

Hi Machiel,

That's no worries! Yes, the newer REST API is where Yellowfin is focusing development and has a lot of great features.

If you're happy, I'll close this ticket off.

Kind regards,

Chris

photo
1

Hi Chris,

Yes, thanks for your help. This ticket can be closed.

Best regards,

Machiel