Package flex.messaging.io.amf

Examples of flex.messaging.io.amf.ActionMessage


      throw cse;
    }

    String responseURI = getResponseURI();

    ActionMessage requestMessage = new ActionMessage( getObjectEncoding() );

    if( amfHeaders != null )
    {
      for( MessageHeader header : amfHeaders )
        requestMessage.addHeader( header );
    }

    MessageBody amfMessage = new MessageBody( command, responseURI, arguments );
    requestMessage.addBody( amfMessage );

    // Setup for AMF message serializer
    actionContext.setRequestMessage( requestMessage );
    ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
    AmfMessageSerializer amfMessageSerializer = new AmfMessageSerializer();
View Full Code Here


   */
  protected Object processHttpResponseBody( InputStream inputStream ) throws ClassNotFoundException, IOException,
      ClientStatusException, ServerStatusException
  {
    DataInputStream din = new DataInputStream( inputStream );
    ActionMessage message = new ActionMessage();
    actionContext.setRequestMessage( message );
    MessageDeserializer deserializer = new AmfMessageDeserializer();
    deserializer.initialize( serializationContext, din, null/* trace */);
    deserializer.readMessage( message, actionContext );
    din.close();
View Full Code Here

        }

        String responseURI = getResponseURI();

        // TODO: Support customizable batching of messages.
        ActionMessage requestMessage = new ActionMessage(getObjectEncoding());

        if (amfHeaders != null)
        {
            for (MessageHeader header : amfHeaders)
                requestMessage.addHeader(header);
        }

        MessageBody amfMessage = new MessageBody(command, responseURI, arguments);
        requestMessage.addBody(amfMessage);

        // Setup for AMF message serializer
        actionContext.setRequestMessage(requestMessage);
        ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
        AmfMessageSerializer amfMessageSerializer = new AmfMessageSerializer();
View Full Code Here

    protected Object processHttpResponseBody(InputStream inputStream)
            throws ClassNotFoundException, IOException, ClientStatusException,
            ServerStatusException
    {
        DataInputStream din = new DataInputStream(inputStream);
        ActionMessage message = new ActionMessage();
        actionContext.setRequestMessage(message);
        MessageDeserializer deserializer = new AmfMessageDeserializer();
        deserializer.initialize(serializationContext, din, null/*trace*/);
        deserializer.readMessage(message, actionContext);
        din.close();
View Full Code Here

    {
        // Additional AMF packet tracing is enabled only at the debug logging level.
        AmfTrace debugTrace = Log.isDebug() ? new AmfTrace() : null;
       
        // Create an empty ActionMessage object to hold our response.
        context.setResponseMessage(new ActionMessage());
       
        // Flag to track whether we deserialize valid AMF (if we don't, we need to skip further inbound processing).
        boolean success = false;
       
        // Use the thread local serialization context.
        try
        {
            TypeMarshallingContext.setTypeMarshaller(typeMarshaller);
           
            // Deserialize the input stream into an ActionMessage object.
            MessageDeserializer deserializer = serializationContext.newMessageDeserializer();

            // Setup the deserialization context.          
            deserializer.initialize(serializationContext, input, debugTrace);

            // Record the length of the input stream for performance metrics.
            if (contentLength != -1)
                context.setDeserializedBytes(contentLength);

            // Set up the incoming MPI info if it is enabled.           
            if (context.isMPIenabled())
            {
                MessagePerformanceInfo mpi = new MessagePerformanceInfo();
                mpi.recordMessageSizes = context.isRecordMessageSizes();
                mpi.recordMessageTimes = context.isRecordMessageTimes();
                if (context.isRecordMessageTimes())
                    mpi.receiveTime = System.currentTimeMillis();
                if (context.isRecordMessageSizes())
                    mpi.messageSize = contentLength;
               
                context.setMPII(mpi);
            }

            ActionMessage m = new ActionMessage();
            context.setRequestMessage(m);
            deserializer.readMessage(m, context);
            success = true; // Continue inbound processing.
        }
        catch (EOFException eof)
        {
            context.setStatus(MessageIOConstants.STATUS_NOTAMF);
        }
        catch (IOException e)
        {
            if (Log.isDebug())
                logger.debug("IOException reading AMF message - client closed socket before sending the message?");

            throw e;
        }
        catch (Throwable t)
        {
            deserializationError(context, t);
        }
        finally
        {
            if (!success)
                setInboundAborted(true);
           
            TypeMarshallingContext.setTypeMarshaller(null);
           
            // Reset content length.
            contentLength = -1;
           
            // Use the same ActionMessage version for the response.
            ActionMessage respMsg = context.getResponseMessage();
            respMsg.setVersion(context.getVersion());

            // Log a trace of the inbound AMF message.
            if (Log.isDebug())
                logger.debug(debugTrace.toString());
        }
View Full Code Here

    {
        // Serialize output.
        if (context.getStatus() != MessageIOConstants.STATUS_NOTAMF)
        {
            ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();                              
            ActionMessage respMesg = context.getResponseMessage();

            // Additional AMF packet tracing is enabled only at the debug logging level.
            AmfTrace debugTrace = Log.isDebug() ? new AmfTrace() : null;

            try
View Full Code Here

     * serilization. Add a new response with the serialization failure for each of the
     * corresponding requests in the received ActionMessage.
     */
    private void serializationError(ActionContext context, Throwable t)
    {
        ActionMessage responseMessage = new ActionMessage();
        context.setResponseMessage(responseMessage);

        int bodyCount = context.getRequestMessage().getBodyCount();
        for (context.setMessageNumber(0); context.getMessageNumber() < bodyCount; context.incrementMessageNumber())
        {
View Full Code Here

        // Log input/output for debug level
        AmfTrace debugTrace = isDebug ? new AmfTrace() : null;

        // Create an empty ActionMessage object to hold our response
        context.setResponseMessage(new ActionMessage());
        SerializationContext sc = SerializationContext.getSerializationContext();

        try
        {
            // Deserialize the input stream into an "ActionMessage" object.
            MessageDeserializer deserializer = sc.newMessageDeserializer();

            // Set up the deserialization context
            InputStream in = FlexContext.getHttpRequest().getInputStream();
            deserializer.initialize(sc, in, debugTrace);

            // record the length of the input stream for performance metrics
            int reqLen = FlexContext.getHttpRequest().getContentLength();
            context.setDeserializedBytes(reqLen);

            // set up the incoming MPI info if it is enabled
            if(context.isMPIenabled())
            {
                MessagePerformanceInfo mpi = new MessagePerformanceInfo();
                mpi.recordMessageSizes = context.isRecordMessageSizes();
                mpi.recordMessageTimes = context.isRecordMessageTimes();
                if(context.isRecordMessageTimes())
                    mpi.receiveTime = System.currentTimeMillis();
                if(context.isRecordMessageSizes())
                    mpi.messageSize =reqLen;

                context.setMPII(mpi);
            }

            ActionMessage m = new ActionMessage();
            context.setRequestMessage(m);
            deserializer.readMessage(m, context);
            success = true;
        }
        catch (EOFException eof)
        {
            context.setStatus(MessageIOConstants.STATUS_NOTAMF);
        }
        catch (IOException exc)
        {
            if (isDebug)
                logger.debug("IOException reading message - client closed socket before sending the message?");

            throw exc;
        }
        catch (Throwable t)
        {
            deserializationError(context, t);
        }
        finally
        {
            // Use the same ActionMessage version for the response
            ActionMessage respMsg = context.getResponseMessage();
            respMsg.setVersion(context.getVersion());

            if (isDebug)
                logger.debug(debugTrace.toString());
        }

        try
        {
            if (success)
            {
                next.invoke(context);
            }
        }
        catch (Throwable t)
        {
            unhandledError(context, t);
        }
        finally
        {
            // serialize output
            if (context.getStatus() != MessageIOConstants.STATUS_NOTAMF)
            {
                ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
                ActionMessage respMesg = context.getResponseMessage();

                if (isDebug)
                {
                    debugTrace = new AmfTrace();
                }
View Full Code Here

     * body to the client. It will not make it back to a custom responder, but the NetConnection
     * Debugger will show the event.
     */
    private void unhandledError(ActionContext context, Throwable t)
    {
        ActionMessage responseMessage = new ActionMessage();
        context.setResponseMessage(responseMessage);

        MessageBody responseBody = new MessageBody();
        responseBody.setTargetURI(context.getRequestMessageBody().getResponseURI());

View Full Code Here

     * serilization. Add a new response with the serialization failure for each of the
     * corresponding requests.
     */
    private void serializationError(ActionContext context, Throwable t)
    {
        ActionMessage responseMessage = new ActionMessage();
        context.setResponseMessage(responseMessage);

        int bodyCount = context.getRequestMessage().getBodyCount();
        for (context.setMessageNumber(0); context.getMessageNumber() < bodyCount; context.incrementMessageNumber())
        {
View Full Code Here

TOP

Related Classes of flex.messaging.io.amf.ActionMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.