SOAP Abfrage wie gehts?

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

  • SOAP Abfrage wie gehts?

    Hallo Zusammen,

    wer hat Erfahrung mit den PHP SOAP Funktionen?

    Es geht um folgendes:
    Ich setze mich z.Z. mit dem Thema SOAP auseinander. Habe mithilfe einiger Tutorials auch schon mit dem SoapClient herumgespielt.


    Ich bekomme es aber nicht hin!

    Wer hat einen Tip für mich?


    Hier mal ein Auszug aus meinem Testcode:

    PHP-Code:
    $client = new SoapClient('../include/classes/o2_IncidentReader.wsdl'
            array(
    'userName' => "xxx"
                
    'login' => "LOGIN"
                
    'password' => "PASSWORD"
                
    'cache_wsdl'=>'WSDL_CACHE_NONE''trace' => true
            
    ));



    try {
        
    print_r($client->__soapCall(
            
    /* SOAP Method Name */
            
    "OpGetIncident"#OpGetIncident",
            /* Parameters */
            
    array(
            new 
    SoapParam(
                
    "xxx"
                
    "userName" 
            
    ),
            new 
    SoapParam(
                
    "xxx"
                
    "password"
            
    ),
            new 
    SoapParam(
                
    /* Parameter Value */
                
    "IMG000000136978",
                
    /* Parameter Name */
                
    "Request-ID"
            
    )) 
    Danke Gruss
    gruss pedro

  • #2
    Wieso holst du die wsdl aus dem lokalen Dateisystem?
    Das wird doch nix, oder?

    Und der Zugriff auf die Funktion sollte sich auch einfacher gestalten lassen.
    z.B.


    PHP-Code:
        print_r($client->OpGetIncident("willi","geheim","IMG000000136978")); 
    Interessant wäre evtl noch, welche PHP Version und damit auch welches SOAP Paket du benutzt.
    Zuletzt geändert von combie; 27.11.2008, 13:37.
    Wir werden alle sterben

    Kommentar


    • #3
      Hallo,

      version 5.1.2.

      Ja ich habe auch ala so versucht.
      Mein Problem ist einfach, dass ich schon alles versucht habe.
      Dasher auch das gegenwertige Beispiel.

      Habs auch so versucht:



      PHP-Code:
      $client = new SoapClient(NULL,
            array(
          
      'proxy_host' => "o3bcproxy.de.pri.o3.com"
          
      'proxy_port' => "8080"
          
      'userName' => "xxx"
          
      'password' => "xxx"
             
      "location" => "http://server.de.pri.o3.com:8088/arsys/WSDL/public/server/o2_IncidentReader/OpGetIncident",
            
      "uri"      => "http://server.de.pri.o3.com:8088/arsys/WSDL/public/server/o2_IncidentReader/OpGetIncident"
          
      'encoding'=>'ISO-8859-1',
             
      "style"    => SOAP_DOCUMENT,
            
      "use"      => SOAP_LITERAL
             
      )); 
      Oder bin ich da auch auf dem Holzweg?

      Aber

      PHP-Code:
      print_r($client->OpGetIncident("willi","geheim","IMG000000136978")); 
      Versuch ich auch gleich mal.
      gruss pedro

      Kommentar


      • #4
        server.de.pri.o3.com gibt es nicht. Ist server nur ein Platzhalter?

        Kommentar


        • #5
          platzhalter

          ja ist doch nur ein platzhalter ;o)
          gruss pedro

          Kommentar


          • #6
            Gibt es eine Fehlermeldung?

            Kommentar


            • #7
              Welche Fehlermeldung kommt denn?
              SOAP ist da eigentlich recht auskunftsfreudig...
              Wir werden alle sterben

              Kommentar


              • #8
                server connecten

                ja ich war mal soweit, dass er sagt er kanns sich erst garnicht auf den server connecten.

                das komische ist aber , per soap ui 2.5 komm ich auf den server.
                kenn denn jemand? soap ui?

                also mein fehler liegt schon am connecten.

                mir ist auch nicth klar, was von meinen werten z.b. hierein müsste.

                PHP-Code:
                $client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                                     
                'uri'      => "http://test-uri/")); 
                Was ist ist bei meinem request die location? was der namespace?
                gruss pedro

                Kommentar


                • #9
                  server connecten

                  ja ich war mal soweit, dass er sagt er kanns sich erst garnicht auf den server connecten.

                  das komische ist aber , per soap ui 2.5 komm ich auf den server.
                  kenn denn jemand? soap ui?

                  also mein fehler liegt schon am connecten.

                  mir ist auch nicth klar, was von meinen werten z.b. hierein müsste.

                  PHP:
                  $client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                  'uri' => "http://test-uri/"));



                  Was ist ist bei meinem request die location? was der namespace?
                  gruss pedro

                  Kommentar


                  • #10
                    o3bcproxy.de.pri.o3.com existiert übrigens auch nicht.

                    Reduziere mal auf den einfachsten Aufruf: new SoapClient('http://example.com/path/file.wsdl')
                    Wenn das nicht klappt, bspw. wegen fehlender Zugangsdaten, kannst du diese als zweiten Parameter übergeben. Schritt für Schritt und immer die Fehlermeldungen posten!

                    Kommentar


                    • #11
                      falscher proxy

                      den proxy hab ich auch verändert ;o)

                      PHP-Code:
                      $client = new SoapClient('../include/classes/o2_IncidentReader.wsdl'
                      Ergebnis:

                      PHP-Code:

                      print_r
                      ($client);

                      SoapClient Object
                      (
                          [
                      _soap_version] => 1
                          
                      [sdl] => Resource id #2

                      oder so?
                      PHP-Code:
                      $client = new SoapClient('http://server.de.pri.o3.com:8088/arsys/WSDL/public/server/o2_IncidentReader');
                      Dann bekomm ich:

                      Warning:  SoapClient::__construct([url]http://deapviap.de.pri.o2.com:8088/arsys/WSDL/public[/url]
                      /deapviap/o2_IncidentReader) [function.--construct]: failed to open streamConnection 
                      timed out in 
                      /home/adrianf/public_html/workspace/can/www/testi_adrianf.php on line 35


                      Warning
                      :  SoapClient::__construct() [function.--construct]: I/O warning failed to load 
                      external entity 
                      "http://server.de.pri.o3.com:8088/arsys/WSDL/public/deapviap
                      /o2_IncidentReade" 
                      in /home/adrianf/public_html/workspace/can
                      /www/testi_adrianf.php on line 35 
                      Zuletzt geändert von petro_0; 27.11.2008, 18:24.
                      gruss pedro

                      Kommentar


                      • #12
                        deapviap.de.pri.o2.com auch den Server gibt es nicht!

                        Bist du dir sicher, dass Port 8088 auf der Firewall freigegeben ist?
                        Wir werden alle sterben

                        Kommentar


                        • #13
                          firewall

                          denn server gibts ;o) sicher! oingen kann ich denn server. handelt sich um ein testsystem.daher... wenn ich pingen kann, sollte die firewall frei sein, oder?
                          gruss pedro

                          Kommentar


                          • #14
                            Re: firewall

                            wenn ich pingen kann, sollte die firewall frei sein, oder?
                            Nein, Ping befindet sich auf der Internetschicht im TCP/IP-Modell, dein SOAP läuft auf der Anwendungsschicht. Versuch mal per Telnet eine Verbindung zu Port 8088 herzustellen. Wenn das klappt, liegts irgendwo am Server oder PHP. Wenn das nicht klappt, kommst du nicht an den Zielserver ran.

                            Kommentar


                            • #15
                              telnet

                              siehste...das wusste ich nicht;o)

                              telnet: could not resolve deapviap.de.pri.o2.com:8088/telnet: Temporary failure in name resolution
                              gruss pedro

                              Kommentar

                              Lädt...
                              X