Foros del Web » Programando para Internet » PHP » Zend »

Zend_Soap Service: Uncaught SoapFault exception: [Client] looks like we got no XML do

Estas en el tema de Zend_Soap Service: Uncaught SoapFault exception: [Client] looks like we got no XML do en el foro de Zend en Foros del Web. Hola, estoy recibiendo un error bastante feo de Zend_Soap: Uncaught SoapFault exception: [Client] looks like we got no XML document in ... Lei que este ...
  #1 (permalink)  
Antiguo 10/11/2008, 12:31
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 16 años, 3 meses
Puntos: 6
Zend_Soap Service: Uncaught SoapFault exception: [Client] looks like we got no XML do

Hola, estoy recibiendo un error bastante feo de Zend_Soap:
Uncaught SoapFault exception: [Client] looks like we got no XML document in ...

Lei que este error ocurre cuando en la respuesta HTTP, hay caracteres extraños antes de <xml...; este no es el caso. De todas formas, hay un caracter 0A(line feed) al final del archivo que no deberia estar.

Este es el codigo del controller que estoy usando:
[application/modules/api/controllers/RealmController.php]
Código:
<?php

class Api_RealmController extends Zend_Controller_Action
{
    public function init()
    {
        // Disable layout
        $this->_helper->layout()->disableLayout();

        // Disable ViewRenderer plugin
        $this->_helper->viewRenderer->setNoRender();

$this->getResponse()->clearBody();
    }

    public function serveAction()
    {
        // Instantiate SOAP server
        $server = new Zend_Soap_Server('http://rhea.thaorius.net/nation/public/api/realm/wsdl');

        // Set class
        $server->setClass('Test_Soap');

        // Handle SOAP request
        $server->handle();
    }

    public function wsdlAction()
    {
        // Instantiate auto discover
        $autodiscover = new Zend_Soap_AutoDiscover();

        // Set class
        $autodiscover->setClass('Test_Soap');

        // Handle WSDL request
        $autodiscover->handle()
    }
}

class Test_Soap
{
    /**
     * This method takes 1 parameter and does shit with it.
     *
     * @param string $input
     * @return integer
     */
    public function testfunc($input)
    {
        return 12;
    }
}
En el index,php, bootstrap.php y en el plugin que se carga desde el bootstrap, uso las coding guidelines de Zend y no tengo un line feed antes de ningun <?php tag y no uso el tag ?>.

Ahora, si hago una peticion directa a la accion wsdl firefox hace un render perfecto como XML que es mi salida. Lo mismo pasa con la acion serve, pero esta ultima muestra lo siguiente de salida:
Código:
<SOAP-ENV:Envelope>
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>0</faultcode>
      <faultstring>Invalid XML</faultstring>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Tambien se me ocurrio que el 'Invalid XML' era por el echo de que estaba llamando directamente al archivo, y por tanto, no estaba enviando una peticion SOAP; asi que escribi un pequeño cliente de prueba, que es el que me tira finalmente el error en cuestion:
Código:
<?php
$client = new SoapClient('http://rhea.thaorius.net/nation/public/api/realm/wsdl');
var_dump($client->testfunc("lalalala"));
Alguna idea? estoy un poco desesperado a este punto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:46.