Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][symfony2] SOAP, jak poprawnie wykonac ?
Ghost_78
post
Post #1





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

Ostrzeżenie: (0%)
-----


Witam ponownie (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
d3ut3r
post
Post #2





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

Ostrzeżenie: (0%)
-----


Czytałeś już to:

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

?
Go to the top of the page
+Quote Post
Ghost_78
post
Post #3





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

Ostrzeżenie: (0%)
-----


A nom (IMG:style_emoticons/default/smile.gif) . Czytałem - od tego zacząłem (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 15:48