Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][symfony2] SOAP
Forum PHP.pl > Forum > PHP > Frameworki
Ghost_78
Witam ponownie smile.gif.
Dzisiaj mam następujący problem. Chciałem wystawić usługę SOAP.
Zrobiłem sobie osobnego bundla"Webservice". Prawie wszystko udałło mi się pokonfigurować. Niestety "prawie".
Zrobiłem to tak. Zrobiłem WSDL - w kliencie działa. Jak dam w kliencie wyświetlanie dostępnych metod bez problemu się wyświetlają.

Problem pojawia się w momencie kiedy chcę wykonać daną metodę.
Kontroler: (chociaż mam wrażenie, że jest coś nie tak zwracam)
  1. public function indexAction()
  2. {
  3. $server = new \SoapServer('http://.../plik.wsdl');
  4. $object = new Object();
  5. $server->setObject($object);
  6. $response = new \Symfony\Component\HttpFoundation\Response();
  7. $response->headers->set('Content-Type', 'text/xml; charset=UTF-8');
  8. return $response;
  9. }


Klasa Object:
  1. class Object{
  2.  
  3. public function method(){
  4. $response = new \Symfony\Component\HttpFoundation\Response();
  5. $response->headers->set('Content-Type', 'text/xml; charset=UTF-8');
  6. $response->setContent('<test>wartosc</test>');
  7. return $response;
  8. }
  9. .........
  10. }


i teraz jak w kliencie zrobię:
  1. ini_set("soap.wsdl_cache_enabled", "0");
  2. echo 'SOAP<br>';
  3. try{
  4. $client = new soapclient('http://.../plik.wsdl',array('trace'=>1));
  5. $client->method();
  6. } catch(Exception $e){
  7. echo $e->getMessage();
  8. }
  9. echo '<br>end SOAP';


Dostaję w nim komunikat:
looks like we got no XML document

No i konkluzja: coś mi nie poszło tongue.gif

Bez symfony jakoś kiedyś odpaliłem SOAP'a - tutaj jakoś ciężko mi to idzie

Z góry dziękuję za wszelkie wskazówki.

Pozdrawiam.
d3ut3r
Czytałeś już to:

http://symfony.com/doc/current/cookbook/we..._extension.html

?
Ghost_78
A nom smile.gif. Czytałem - od tego zacząłem smile.gif. Miałem tam jakieś problemy z tymi ob_start itp.

W sumie chyba rozwiązałem juz problem. Tzn zrobiłem tak, że działa. Poniżej przedstawię moją konfigurację. Jeżeli ktoś dopatrzy się jakiegoś "brzydkiego" rozwiązania to bardzo proszę o komentarz.

Kontroller serwera:
  1. public function indexAction()
  2. {
  3. $server = new \SoapServer('http://..../plik.wsdl');
  4. $object = new \Apps\WebserviceBundle\Util\Object();
  5. $server->setObject($object);
  6.  
  7. $response = new \Symfony\Component\HttpFoundation\Response($server->handle());
  8. $response->headers->set('Content-Type', 'text/xml; charset=UTF-8');
  9. return $response;
  10.  
  11. }


Klasa do wystawienia przez SOAP:
  1. class Object{
  2.  
  3. public function method(){
  4. return '<test>sdsadas</test>';
  5. }


Testowy plik klienta:
  1. try{
  2. $client = new soapclient('http://.../plik.wsdl');
  3. print_r($client->__getFunctions());
  4. echo $client->method('elephant');
  5. } catch(Exception $e){
  6. echo $e->getMessage();
  7. }


Pozdrawiam serdecznie szanowne grono smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.