peter_lustich_kanns Geschrieben 23. Juli 2013 Teilen Geschrieben 23. Juli 2013 Moin Moin, ich habe ein Verständnisproblem der aktuellen Situation beim Ansprechen von webservices innerhalb eines geschlossenen (in sich erreichbaren) Netzwerk. Wenn ich meine Webservices-Klasse erstellen möchte (via wsdl2php - funktioniert für öffnetliche Services hervorragend) erhalte ich die Meldung PHP Warning: SoapClient::__construct(http://10.20.30.123/test/test.svc?xsd=xsd0): failed to open stream: HTTP request failed! in /srv/www/test/html/utils/wsdl-test.php on line 35 PHP Warning: SoapClient::__construct(): I/O warning : failed to load external entity "http://10.20.30.123/test/test.svc?xsd=xsd0'>http://10.20.30.123/test/test.svc?xsd=xsd0" in /srv/www/test/html/utils/wsdl-test.php on line 35 PHP Fatal error: SOAP-ERROR: Parsing Schema: can't import schema from 'http://10.20.30.123/test/test.svc?xsd=xsd0'>http://10.20.30.123/test/test.svc?xsd=xsd0' in /srv/www/test/html/utils/wsdl-test.php on line 35 Wobei die URL, die ich für den Websevice hinterlege wie folgt lautet: http://10.20.30.123/test/test.svc?wsdl Wenn ich aber versuche einfach nur den Inhalt als wsdl anzuzeigen, funktionierts: hier der Code dafür: $homepage = file_get_contents('http://10.1.0.46/digigs/DigigsUser.svc?wsdl'); echo $homepage."\r\n"; [/PHP] Ich habe auch bereits Dr. Google gefragt. Hier bei sind folgende Lösungs-Ansätze gefunden wurden: 1. die Änderung von ?wsdl nach ?xsd=xsd0 sei Standard, da der Interpreter ansonsten nicht damit zurecht kommt --> hmm ok, nächster Punkt 2. im C:\Windows\Temp rechte für den Benutzer einrichten --> wäre nicht zielführend, da ansonsten nicht die Ausgabe als wsdl nicht funktionieren würde nehme ich an. Weitere vermeintlich korrekten lösungansätze habe ich ncht gefunde. Habt ihr einen Hinweis für mich? Port 80 ist auf dem 10.20.30 frei geschaltet! Gruß euer Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 24. Juli 2013 Teilen Geschrieben 24. Juli 2013 Gib die Adresse mal in einen Browser ein und schaue ob es zu einem redirect kommt. Nicht alle wsdl2* Werkzeuge können mit redirects sauber umgehen. Die haben dann plötzlich vollkommen falsche Adressen in der Hand und versuchen dann drauf eine Generierung durchzuführen. Wenn es zu einem redirect kommt nimm die "neue" Adresse und gib sie wsdl2php dann sollte es besser klappen. Wenn es nicht zu einem Redirekt kommt versuche mal zu schauen ob in der wsdl dann alle imports, die eventuell vorhanden sind, auch erreichbar sind. Alternativ kannst du mal versuchen diese URL z.B. in SoapUI zu importieren um zu schauen ob er diese wsdl verarbeiten kann. Denn nicht alle Webservice Anbieter liefern valide wsdl's aus. Auch dann kann dann zu einem Problem werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.