Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][SOAP] php nie wyrabia?
MolTAR
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 2
Dołączył: 15.08.2007
Skąd: Nowy Targ

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


Witam
Mam kod klienta i serwera soap. Wszystko działa dobrze tylko że serwer nie zawsze zwraca poprawne dane. Dzieje się tak najczęściej wtedy, gdy np. kliknę kilka razy odśwież, ale podczas zwykłej pracy również tylko rzadziej.
Moje pytanie jest takie:
Czy to wina soap'a, czy tego, że komputer, na którym stoi serwer jest za słaby, czy może samego kodu php, który jest wykonywany w funkcjach serwera soap.

Serwer jest zrobiony tak:

  1. <?php
  2. function funkcja()
  3. {
  4.  return 'to jest funkcja';
  5. }
  6.  
  7. class myServer extends SoapServer
  8. {
  9.  public function __construct()
  10.  {
  11.    parent::__construct( null, array( "uri" => "service://przyklad.pl" ) );
  12.    $this->addFunction( "funkcja" );
  13.    $this->handle();
  14.  }
  15. }
  16.    
  17. $srv = new myServer();
  18. ?>


Kod klienta to np:
  1. <?php
  2. class myClient extends SoapClient
  3. {
  4.  public function __construct()
  5.  {          
  6.     parent::__construct( null, array(    'uri'         => 'service://przyklad',
  7.                                                 'location'     => 'http://globalna sciezka do pliku serwera' ) );
  8. }
  9.  
  10. $client = new myClient();
  11. echo $client->funkcja();
  12. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




1. Co rozumiesz przez niepoprawne dane?
2. Po co wrzuciłeś to do klasy? Dane do usługi zapisujesz sobie w pliku konfiguracyjnym i nie musisz tworzyć kolejnej (zbędnej) warstwy abstrakcji.
Go to the top of the page
+Quote Post
MolTAR
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 2
Dołączył: 15.08.2007
Skąd: Nowy Targ

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


Przez nieprawidłowe dane rozumiem to, że serwer w niektórych funkcjach sprawdza szereg rzeczy i jak któryś z tych testów się nie powiedzie to zwraca odpowiedni błąd, a jak wszystko pójdzie dobrze to zwraca dane o które prosi klient. W większości przypadków wszystko dzieje się dobrze, ale czasem zwraca jakiś błąd - za każdym razem jest to inny błąd.
Powiedzmy, że miałby sprawdzać IP klienta oraz hasło, które wpisał i raz na kilka przypadków zwraca błąd, że IP jest złe, innym razem że hasło jest złe, a w większości działa dobrze.

Po co to jest w klasie? Tego nie wiem, bo ten kod nie był pisany przeze mnie. Dostałem go, żeby wprowadzić w nim zmiany.
Jednak usuwając tę klasę problem dalej występuje.
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Nie spotkałem się z takim błędem, więc ciężko stwierdzić od razu co jest nie tak.
Na początek zrób tak. W metodzie, która najczęściej powodowała problemy, loguj dane, które przychodzą i dane, które są zwracane. Po analizie tych danych może się okazać, że błąd leży w samej metodzie lub przyjmowanych danych. Jeśli to nie pomoże, to wystaw gdzieś na świat tą usługę i podaj namiary oraz przykładowe wywołanie.
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: 22.12.2025 - 23:51