SOAP Abfrage wie gehts?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.
    Last edited by combie; 27-11-2008, 13:37.
    Wir werden alle sterben

    Comment


    • #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

      Comment


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

        Comment


        • #5
          platzhalter

          ja ist doch nur ein platzhalter ;o)
          gruss pedro

          Comment


          • #6
            Gibt es eine Fehlermeldung?

            Comment


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

              Comment


              • #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

                Comment


                • #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

                  Comment


                  • #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!

                    Comment


                    • #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 
                      Last edited by petro_0; 27-11-2008, 18:24.
                      gruss pedro

                      Comment


                      • #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

                        Comment


                        • #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

                          Comment


                          • #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.

                            Comment


                            • #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

                              Comment

                              Working...
                              X