PHP Soap Server i klient JAVA

0

Witam,

Mam prosty serwer SOAP w PHP:

<?php

ini_set("soap.wsdl_cache_enabled", "0");

require_once("Zend/Soap/Server.php");
require_once("Zend/Soap/AutoDiscover.php");

class SoapTracker {

    /**
     * Returns Hello World. 
     * 
     * @param string $name 
     * @return string
     */
    public function SayHello($name) {
        return 'Hello' . $name . "!";
    }
    
    /**
     * Jakas dziwna funkcja testowa. 
     * 
     * @return int 
     */
    public function SayCokolwiek() {
        return 28;
    }

}

class SoapTracker_LiteralDocumentProxy {

    public function __call($methodName, $args) {
        $soapClass = new SoapTracker();
        $result = call_user_func_array(array($soapClass, $methodName), $args[0]);
        return array($methodName . 'Result' => $result);
    }

}

if (isset($_GET['wsdl'])) {
    $wsdl = new Zend_Soap_AutoDiscover(); // It generates the WSDL 
    $wsdl->setOperationBodyStyle(array(
        'use' => 'literal'
    ));
    $wsdl->setBindingStyle(array(
        'style' => 'document'
    ));
    $wsdl->setClass('SoapTracker');
    $wsdl->handle();
} else {
    $server = new Zend_Soap_Server('http://localhost:8888/SoapTrackerServer/server.php?wsdl');
    $server->setClass('SoapTracker_LiteralDocumentProxy');
    $server->handle();
}
?>

(kod z manuala)

A klienta chcę napisać w javie. Wszystko jest ok, poza tym, że w kliencie zawsze dostaję null zamiast tekstu/int czy czegokolwiek.
Wie ktoś jak rozwiązać ten problem?

0

Sprawdź co tak na prawdę dostajesz w kopercie SOAP. Czyli w tym kliencie w javie wypisz jakoś treść odpowiedzi z serwera, albo wywołaj zapytanie przeglądarką. Jak w odpowiedzi będzie wszystko oki, to napisz temat w dziale Java.

0

Do PHP przychodzi poprawny xml:

<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:SayHello xmlns:ns2="http://localhost:8888/SoapTrackerServer/server.php"><name>HejHopsa</name></ns2:SayHello></S:Body></S:Envelope>

Ale już z PHP wraca odpowiedź z body:

<ns1:SayHelloResponse/>

więc pehap nic nie odsyła :/
Próbowałem już wszystkiego, tego kodu, który mam wyżej, SoapServer z PHP, NuSOAP mi się nie udało, ponieważ cały czas miałem style="rpc" i java marudziła.
Ktokolwiek ma jakiś pomysł? Wiem, że można to rozwiązać, ale nie znalazłem nigdzie niczego co by działało...

0

Zerknij na to :

1 użytkowników online, w tym zalogowanych: 0, gości: 1