SOAP client metóda hlási Forbidden

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
d_rc
Člen | 1
+
0
-

Ahoj,

pokúšam sa rozbehať na staršom Nette (1.0.0) SOAP a nedarí sa mi zistiť prečo nevie server zavolať požadovanú metódu.

Všetko by malo fungovať, dokonca aj getFunctions požadovanú metódu ukazuje (to totiž čerpá z wsdl). Keď však zavolám klienta, ktorý by mal zavolať metódu getQuote() tak to spadne na „SoapFault – Forbidden“ ako by tú triedu s metódou getQuote() nevedel nájsť. Keď ju však skúsim mimo SOAP volať z renderServer1, tak ju nájde. Podľa Call Stacku je problém v metóde SoapClient->__doRequest() ktorá je volaná zo SoapClient->__call() ktorú volám ja z $client->getQuote().

Akýkoľvek hint mi pomôže, ďakujem.

Presenter, ktorý rendruje clienta i server:

<?php

class Soap_NecMkpPresenter extends Presenter {

  public function renderServer1() {
    ini_set("soap.wsdl_cache_enabled", "0");
    $server = new SoapServer("test.wsdl");
    $server->setClass("SoapMethods");
    $server->handle();
    $this->terminate();
  }

  public function renderClient1() {
    ini_set("soap.wsdl_cache_enabled", "0");
    $client = new SoapClient("test.wsdl");
    //var_dump($client->__getFunctions()); die();
    print($client->getQuote("ibm"));
    $this->terminate();
  }
}

?>

Trieda s metódami pre SOAP:

<?php

 class SoapMethods extends Object {

   function SoapMethods() {
     ini_set("soap.wsdl_cache_enabled", "0");
   }

   public function getQuote($symbol) {
     return 1.23;
   }

 }

?>
newPOPE
Člen | 648
+
0
-

Ahoj,

to vyzera na to, ze ked sa na pozadi vola URL tak nie je dostupna. Bezne je tak nastaveny Apache by default.