Advice for SOAP with no wsdl?

I am integrating with a merchandise fulfillment company on behalf of a client for an ecommerce website. The fulfiller has a soap interface for communicating orders to them, but they have no accessible WSDL (I know, what the hell?).

So, everything I've been able to find relating to having a client for a soap web service is with SOAP4R and seems to require a WSDL for use. Right now, I'm leaning towards using the httpclient (http:// dev.ctor.org/doc/httpclient/) or rfuzz (http://rfuzz.rubyforge.org/ sample.html) and just working with straight HTTP.

Before I went any further, though, I figured I would see if anyone else has run into this problem and found a better solution. Soooo, anyone have any other solutions?

Thanks, -Lance

I am integrating with a merchandise fulfillment company on behalf of a client for an ecommerce website. The fulfiller has a soap interface for communicating orders to them, but they have no accessible WSDL (I know, what the hell?).

So, everything I've been able to find relating to having a client for a soap web service is with SOAP4R and seems to require a WSDL for use. Right now, I'm leaning towards using the httpclient (http:// dev.ctor.org/doc/httpclient/) or rfuzz (http://rfuzz.rubyforge.org/ sample.html) and just working with straight HTTP.

Before I went any further, though, I figured I would see if anyone else has run into this problem and found a better solution. Soooo, anyone have any other solutions?

Could you write a wsdl file for the service from what documentation you do have ?

Fred

That is a possibility, though it would be something that I'm not terribly familiar/comfortable with. Thanks for the idea.

Would it be possible for you to contact the fulfiller and ask for a WSDL file? Even if they don't have it publicly available, it might still be possible for them to have one lying around. I have encountered this very same problem where the SOAP interface existed but did not have a WSDL--the problem was solved by the provider sending me the WSDL, which I could use locally.

Regards, Sebastian