Galera me deparei com uma situação um pouco estranha, estou tentando tratar
erros no PHP para que quando ocorrer um erro seja retornado este erro para o
FLEX, estou fazendo o seguinte: no codigo abaixo tento executar o comando
SQL, se bem sucedido retorna um araay com o resultado, em caso de erro
retorna um array com os erros, se eu criar esta classe no php e usa-lá no
php, acontece exatamente o que quero, em caso de erro são retornados os
erros tudo beleza, porem chamando esta classe por RemoteObject usando AMFPHP
o array com o erro não é retornado, sera que existe uma solução para
retornar valores para o FLEX em caso de erro no PHP ou simplesmente se deu
erro não tem como retornar nada?

    function carregaDados($id){

        include "./../../libs/Conexao.php";

        $sql = "select nome from sau_credenciado where idcredenciado = $id";

        try {
            if(!$rs=$bd->Execute($sql)){
               throw new Exception();
            }

            $retorno['data']['NOME']    =$rs->fields['NOME'];

        } catch (Exception $e) {

           $retorno = array("erro" => true, "retorno" => $bd->ErrorMsg() . "
= " .$bd->MetaErrorMsg($bd->MetaError()));
        }

        return $retorno;
    }


pelo browser do AMFPHP o erro retorno é esse

(Object)#0
  message = "faultCode:INVALID_AMF_MESSAGE faultString:'Invalid AMF message'
faultDetail:'
Fatal error: Uncaught exception 'VerboseException' with message 'Cannot
modify header information - headers already sent by (output started at
C:\xampp\htdocs\sicoob_saude\flex\amfphp\adodb\lang\adodb-en.inc.php:34)' in
C:\xampp\htdocs\sicoob_saude\flex\amfphp\core\amf\app\Gateway.php:191
Stack trace:
#0 C:\xampp\htdocs\sicoob_saude\flex\amfphp\core\amf\app\Gateway.php(191):
amfErrorHandler(2, 'Cannot modify h...', 'C:\xampp\htdocs...', 191, Array)
#1 C:\xampp\htdocs\sicoob_saude\flex\amfphp\gateway.php(152):
Gateway->service('Content-type: a...')
#2 {main}
  thrown in
C:\xampp\htdocs\sicoob_saude\flex\amfphp\core\amf\app\Gateway.php on line
191
'"
  name = "Error"
  rootCause = (null)

e pelo FLEX o erro é esse:

[RPC Fault faultString="Channel disconnected"
faultCode="Client.Error.DeliveryInDoubt" faultDetail="Channel disconnected
before an acknowledgement was received"]
 at mx.rpc::AbstractInvoker/
http://www.adobe.com/2006/flex/mx/internal::faultHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:216]
 at
mx.rpc::Responder/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\Responder.as:49]
 at
mx.rpc::AsyncRequest/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:103]
 at
NetConnectionMessageResponder/channelDisconnectHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:600]
 at flash.events::EventDispatcher/dispatchEventFunction()
 at flash.events::EventDispatcher/dispatchEvent()
 at
mx.messaging::Channel/disconnectSuccess()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\Channel.as:1091]
 at
mx.messaging.channels::NetConnectionChannel/internalDisconnect()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:153]
 at
mx.messaging.channels::AMFChannel/internalDisconnect()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:291]
 at
mx.messaging.channels::AMFChannel/statusHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:361]

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a