Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aplikacja do zdalnej edycji bazy danych
Forum PHP.pl > Forum > XML, AJAX > XML
lszota
Witam,

od pewnego czasu korzystam z aplikacji umożliwiającej użytkownikom zdalną edycję bazy danych.
Do tej pory wykorzystywałem mechanizm klasycznych formularzy wspomaganych poprzez JavaScript, ale jestem zmuszony do wprowadzenia funkcjonalności wymagającej zastosowania apletów Javy.

Aplet będzie musiał komunikować się z bazą danych MySQL. Dostęp do serwera jest możliwy aktualnie tylko za pośrednictwem Apache + PHP.
Od pewnego czasu przeglądam zasoby netu czytając o rożnych metodach wymiany informacji między klientem a serwerem.
Aktualnie najczęściej doradzany jest XML i protokół SOAP.

Moje pytania są następujące:
1) Czy są znane problemy związane ze współpracą między serwerem SOAP po stronie PHP i klientem SOAP po stronie Javy?
2) Jak wydajnościowo radzi sobie serwer SOAP przy przesłaniu powiedzmy 300 - 500 kB danych ?

Zaczynam dopiero moją przygodę z WebServices i z Javą. Przyda mi się każda wskazówka i link do strony, która mi pomoże.

Z góry dziękuję.
splatch
Do tej pory problem jaki trafiłem w przypadku SOAP była błędna obsługa kolekcji po stronie PHP. Nie pamiętam tereaz dokładnie kontekstu. Tak czy owak przy prostszych zastosowaniach nie ma najmniejszego problemu. Jeśli idzie o przesyłanie dużych partii danych myślę, że istnieje wsparcie dla tego typu operacji pod nazwą SOAP Messages with Attachments. Standard ten po stronie Javy jest wspierany (trzebaby poszperać odnośnie standardu JAX-WS), nie mam pojęcia jak to wygląda po stronie PHP.

Co do stron:
Axis 1.4 - jedna z popularniejszych bibliotek do tworzenia i korzystania z usług sieciowych w Javie
Axis 2 - nowsza, bardziej elastyczna wersja, wyżej wymienionej
CXF - nowszy projekt do obsługi WS, który powstał z XFire, podobno ma być wydajniejszy...
JAX-WS - oficjalna implementacja standardu JAX-WS w Javie.
SOAP extension - dedykowane wsparcie dla SOAP w PHP.
zbig
Witam !
Mam na swoim koncie kilka aplikacji PHP wspolpracujacych z webserwisem napisanym w Javie.
Najwiekszym problemem na jaki napotkalem na poczatku to przekazywanie parametrow z SoapClienta php do WebSerwisu.
Polegaly te problemy na tym ze SoapClient oczekuje obiektu ze zdefiniowanymi wartosciami pol jako parametrow przakazywanych do WebSerwisu.
Tzn: fragment wsdla
Kod
  <xsd:complexType name="ProductInfo">
    <xsd:all>
       <xsd:element name="TotalResults" type="xsd:string" minOccurs="0"/>
       <xsd:element name="TotalPages" type="xsd:string" minOccurs="0"/>
       <xsd:element name="ListName" type="xsd:string" minOccurs="0"/>
     </xsd:all>
   </xsd:complexType>


teraz definicja obiektu z parametrami

Kod
class MyParam{
    
    private $TotalResults;
    private $TotalPages;
        private $ListName;
    
    
    public function setTotalResults ( $TotalResults) {
        $this->TotalResults= (string)$TotalResults;
    }
    
    public function setTotalPages ( $TotalPages ) {
        $this->to = (string)$TotalPages;
    }

    public function setListName ( $ListName ) {
        $this->to = (string)$ListName;
    }
}


nastepnie budujemy calosc

Kod
        try{
           $client = new SoapClient("WSDLadres.wsdl");
        }catch (Exception $e){
           throw new Exception($e->getMessage());
        }
          
          $param = new MyParam();
          $param->setTotalResults ($totalresults);
          $param->setTotalPages ($totalpages);
          $param->setListName ($listname);

          $res = $client->__soapCall('ProductInfo',array($param));


jako $res otrzmasz STDClass ot i cala tajemnica.

Pozdrawiam i powodzenia

-----------------
Sorry za nieporozumienie widze ze ty chcesz dzialac w drugim kierunku Server php Klient Java 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.