dedlfix: wsdl + soap

Beitrag lesen

Tach!

Vorab, ich kenne die Antwort nicht. Aber ich kann dir meine Gedanken mitteilen, in welcher Richtung ich suchen würde.

Ich habe eine ganz normale URL, die den öffentlichen WSDL Endpoint darstellt, da versuche ich dann mit $Client = new SoapClient($wsdl); zu verbinden, kriege aber nur die Fehlermeldung Failed to load external entity.

Wenn du nach dem Fehlermeldungstext suchen lässt, wirst du feststellen, dass der Meldungstext auch in anderen Programmiersprachen auftaucht. Das scheint also ein Text aus der intern verwendeten XML-Library zu sein.

Ich stehe gerade absolut auf dem Schlauch. Woran kann sowas liegen?

Weiterhin findet man in den Antworten als mögliche Ursachen Dinge wie Pfad nicht richtig angegeben, bei https das SSL nicht aktiviert - also Datenübertragungsfehler. Man findet aber auch, dass im XML/XSL etwas referenziert ist, was zum Parsen des Dokuments benötigt wird. Ob letzteres aber bei SOAP/WSDL zutreffen kann, entzieht sich meiner Kenntnis.

An den Proxys hier im Uninetz? An der restriktiven Firewall hier?

Die müssten auch zuschlagen, wenn du die Ressource einfach so zu ziehen versuchst. Wenn du ausschließlich über Proxys ins Internet kommst, muss auch PHP diesen Proxy kennen. Wenn Dateisystemfunktionen für Downloads verwendet werden, kann man einen Stream-Kontext-Parameter angeben. Über diesen Mechanismus kann man auch einen Proxy oder Headerzeilen konfigurieren. Das steht irgendwo in den Tiefen des PHP-Handbuchs beschrieben.

"I found that WSDL fetching fails when using basic authentication in the soapclient. So I implemented the following workaround using wget. I realize wget may not be an option for some environments, in that case cURL would be the next simplest thing. "
Kann es daran liegen?

Ich weiß es nicht. Es kann gut sein, dass sich die Ursache erst durch Mitschneiden und Auswerten des HTTP-Verkehrs ermitteln lässt.

dedlfix.