Я создал службу Zend AMF с помощью инструментов FlashBuilder. Что я хотел попробовать, так это изменить один из этих автоматически созданных методов, чтобы генерировать исключение, чтобы увидеть поведение. Вместо того, чтобы сериализовать исключение обратно в мое приложение Flex, оно дает мне следующее:
[Ошибка RPC faultString="Канал отключен" faultCode="Client.Error.DeliveryInDoubt" faultDetail="Канал отключен до получения подтверждения"] на mx.rpc::AbstractInvoker/http://www.adobe.com/2006/ flex/mx/internal::faultHandler()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:345] в mx.rpc::Responder/fault()[ E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:68] в mx.rpc::AsyncRequest/fault()[E:\dev\4.0.0\frameworks\ проекты\rpc\src\mx\rpc\AsyncRequest.as:113] в NetConnectionMessageResponder/channelDisconnectHandler()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as: 684] в flash.events::EventDispatcher/dispatchEventFunction() в flash.events::EventDispatcher/dispatchEvent() в mx.messaging::Channel/disconnectSuccess()[E:\dev\4.0.0\frameworks\projects\rpc \src\mx\messaging\Channel.as:1214] в mx.messaging.channels::NetConnectionChannel/internalDisconnect()[E:\dev\4.0.0\frameworks\projects\rp c\src\mx\messaging\channels\NetConnectionChannel.as:175] в mx.messaging.channels::AMFChannel/internalDisconnect()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\messaging \channels\AMFChannel.as:355] в mx.messaging.channels::AMFChannel/statusHandler()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as: 445]
Канал отключается...
[Ошибка RPC faultString="Канал отключен" faultCode="Client.Error.DeliveryInDoubt" faultDetail="Канал отключен до получения подтверждения"]
Это код:
публичная функция getAllUser() {
$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename");
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
$rows = array();
mysqli_stmt_bind_result($stmt, $row->id, $row->user_group_id, $row->username, $row->password, $row->active, $row->activation_key, $row->timezone, $row->created_on, $row->modified_on);
while (mysqli_stmt_fetch($stmt)) {
$row->created_on = new DateTime($row->created_on);
$row->modified_on = new DateTime($row->modified_on);
$rows[] = $row;
$row = new stdClass();
mysqli_stmt_bind_result($stmt, $row->id, $row->user_group_id, $row->username, $row->password, $row->active, $row->activation_key, $row->timezone, $row->created_on, $row->modified_on);
}
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
$errorCode = 1;
throw(new Exception('the error message you want', $errorCode));
return $rows;
}
Обратите внимание на оператор throw:
throw(new Exception('нужное сообщение об ошибке', $errorCode));
Я действительно не ожидал этого. Как я могу заставить его работать?
Заранее благодарю!!!