![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 19.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Próbuję stworzyć mój pierwszy Web Service (oparty o SOAP/WSDL) z użyciem PHP. Wcześniej robiłem to w Javie, więc teorię na temat Web Service'ów mam. W PHP też już sporo programuję. Niestety te dwie sprawy nie pomogły mi załatwić problemu na który natrafiłem na samym początku. Do uruchomienia Web Service'u postanowiłem użyć pakietu PEAR, a konkretnie Services_Webservice (plik: Webservice.php). Utworzyłem taką oto prostą usługę (zapisaną w pliku usluga.php):
Następną rzeczą którą chcę zrobić jest uzyskanie pliku WSDL. Zgodnie z dokumentacją, należy do URL'a prowadzącego do pliku php z moją usługa dodać ?wsdl aby to zrobić. Problem w tym, że usługa działa "jednorazowo", tzn. przy pierwszym wywołaniu wszystko jest ok, przy następnych wyskakują już natomiast dwa błedy: 1) Warning: strpos(): Offset not contained in string in <sciezka do PEARa>/Webservice.php on line 518 Drugi jest znacznie gorszy: 2) Fatal error: Uncaught exception 'ReflectionException' with message 'Class does not exist' Debugując kod odkryłem, że w kodzie PEARa (w pliku Webservice.php, a więc NIE w moim kodzie) czasem do konstruktora klasy ReflectionClass trafia pusty ciąg znaków - i wtedy właśnie usługa się wykrzacza, zwracając w/w komunikat (zresztą widać, że jako nazwa klasy która nie istnieje w komunikacie błędu mamy właśnie pusty ciąg znaków). Podsumowując: nie wiem co się dzieje. Jak napisałem - usługa działa tylko jednorazowo. Każde kolejne (po pierwszym) wywołanie zwraca oba błędy. Co ciekawe, kilka godzin później znowu daje się uruchomić usługę... Pomoże ktoś? Co jeszcze mam dostarczyć żeby lepiej opisać błąd? Przy okazji: jestem nowy na forum, więc witam wszystkich serdecznie ![]() -- Maciek Ten post edytował mm-kk 19.03.2011, 15:56:16 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2025 - 20:16 |