Ankündigung

Einklappen
Keine Ankündigung bisher.

SoapServer scheiter an einfacher Ausgabe !?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SoapServer scheiter an einfacher Ausgabe !?

    Hi

    bin per Google auf dieses Forum gestoßen.
    Habe aber auch hier leider noch keine Antwort auf meine Frage finden können.
    Wahrscheinlich ist diese sowieso sehr einfach gelöst.

    Vorweg, ich programmiere schon viele Jahre in PHP und würde mich selber als recht gut einstufen.

    Nun das eigentliche Problem:

    Ich habe mich gezwungen durch einen Auftrag mit SOAP auseinander gesetzt.
    Entschieden habe ich mich für Die SOAP extension ohen WSDL.
    Zum erlernen der Grundlagen habe ich mit eine Server.php und eine Client.php gebaut.
    Alles funktioniert wunderbar!

    Doch ich bekomme einen Fehlermeldung sobald die Server.php irgendwelche Ausgaben enthält.
    Ganz egal ob es sich um ein einfaches echo oder gar eine ganze HTML Seite im Anschluss des PHPs handelt.

    Ich nehme mal an, das es ganz einfach so ist das in der Datei nichts anderes statt finden darf.

    Mein Problem ist aber, die durch den Auftrag vorgegebene Struktur setzt es voraus das die "Server-Komponente" in einem Modul sitzt welches verschachtelt in weiterem Code steckt...

    Ich hoffe es kann mir geholfen werden.


    Lg

    Uhu

  • #2
    welchen Fehler bekommst du den?

    Bzw. SOAP arbeitet mit xml. Wie machst du die Ausgaben?

    vielleicht hilft dir das ja.
    http://www.w3.org/2003/05/soap-envelope/

    Kommentar


    • #3
      Hey Ho

      Habe das ganze mal Ins Web geladen.
      Erstmal noch den Code der Files.

      Server.php:
      PHP-Code:
      <?php

      function testfunc($t) {

        return 
      "Text: ".$t;
        
      }

      ini_set("soap.wsdl_cache_enabled""0"); 

        
      $test time();

        
      $server = new SoapServer(null, array('uri' => 'http://coopas.de'));

        
      $server->addFunction("testfunc");

        
      $server->handle();

        print 
      $test;


      ?>
      Client.php
      PHP-Code:
      <?php

        $soap 
      = new SoapClient(null, array("location" => "http://coopas.de/soap-server.php""uri" => "http://coopas.de""trace" => TRUE) );
        
        echo 
      "<b> Ausgabe: </b> <br />";

        echo 
      $soap->testfunc($_GET['text']); 

        echo 
      "<br />";

        echo 
      "<b> Letzte Meldung: </b> <br />";

        echo 
      $soap->__getLastResponse();

      ?>
      Klaue ich der Server.php die print Ausgabe geht es!
      Wenn ich Sachen wie etwa einen Mkdir rein baue gehts auch noch.
      Aaber sobald ich Ausgabe erzeuge läuft nix mehr.

      Alles zu bewundern unter Index of /

      Habe in der Hoffnung geholfen zu werden extra ne info.php dabei gebaut!

      Wäre echt super wenn jemand helfen kann!


      Lg Uhu

      Kommentar


      • #4
        und was sagt Dir diese Fehlermeldung?

        looks like we got no XML document in

        Kommentar


        • #5
          Wie bereits erwähnt habe ich das sowohl eingegrenzt wie auch verstanden!

          Viel interessanter ist für mich ob das tatsächlich an der Ausgabe liegt oder ob ich einen anderen groben Fehler mache!

          Gegenfrage, was sagt dir dir folgende Fehlermeldung:

          Fatal error: Uncaught SoapFault exception: [HTTP] Forbidden in


          Diese erhalte ich sobald ich das ganze in mein zu erweiternes Programm einfüge.

          Hoffe ich bin einfach zu blöd und es geht


          Gruß Uhu

          Kommentar


          • #6
            Kann es an der SOAP extension liegen?

            Ich kann dein Script hier leider nicht testen. Ich kenn das Problem oft in Verbindung mit pear::soap 0.9.1 ! Wenn man das dann Updatet auf 0.9.4 funktioniert es wieder.

            Kommentar


            • #7
              Hi

              Gedacht habe ich das auch schon.
              Da es aber sowohl Lokal auf XAMPP wie auch unter Index of / bei meinem Hoster die selben Äußerungen hat glaube ich das nicht.

              Das Ding ist wie gesagt, es funktioniert alles ohne irgendwelche Probleme und ich kann riesen Serveranwendungen erstellen.

              Mein Verdacht ist der folgende:

              Client fordert von Server (defakto) einen HTTP Request.
              Durch anderweitige Ausgaben die sich zwangsläufig mit in den HTTP Request mogeln (und sei es nur ein echo) wird dieser für Client unverständlich!

              Ich bin mir sehr sicher damit richtig zu liegen.

              Aus der Erkenntnis leite ich mir zwei Lösungsansätze ab zu denen mir aber keine wirklichen Ideen kommen wollen.

              1. Ich setze einen eigenen HTTP Response in der Server.php mit dem ich andere überschreibe.
              2. Ich richte die Clientanfrage direkter wie bspw. an eine WSDL.

              Auch wenn mein zugrunde liegendes Framework es mir sehr schwer macht, aber ich werde es wohl mal mit WSDL Files versuchen.
              Kennt jmd eine Möglichkeit dynamisch WSDLs zu generieren?
              Ich bekomme die zur Verfügung stehenden Callbacks immerhin auch nur dynamisch und kann daher keine feste WSDL im Vorfeld schreiben !!

              Sehr kniffelig das ganze, aber wir bewegen uns hier ja immerhin im "Pro Modus"


              Lg

              Uhu

              Kommentar


              • #8
                Hi

                Ich habe es gelöst bekommen.
                Jedenfalls zur Hälfte, unter dem von mir genutzten Framework läuft es jetzt einwandfrei!

                Es bliebt jedoch noch die Sache offen, das es sich jedes mal weg ballert wenn man ne Ausgabe drin hat.

                Keiner ein Meinung zu meinen Thesen v.o. ?

                Trotzdem allen ein dickes Danke für die Anteilnahme und das mit denken.

                Lg

                Uhu

                Kommentar

                Lädt...
                X