Package flex.messaging.io.amf

Examples of flex.messaging.io.amf.ActionMessage


     */
    private void unhandledError(ActionContext context, Throwable t)
    {
        context.setStatus(MessageIOConstants.STATUS_ERR);
       
        ActionMessage responseMessage = new ActionMessage();
        context.setResponseMessage(responseMessage);

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

View Full Code Here


    String command = request.getParameter("command");

    response.setHeader("Content-Type", "application/x-amf;charset=x-user-defined");
    ServletOutputStream out = response.getOutputStream();

    ActionMessage requestMessage = new ActionMessage(MessageIOConstants.AMF3);

    MessageBody amfMessage = new MessageBody();

    if (command.equals("getTestString"))
    {
      amfMessage.setData("testString");
    }
    else if (command.equals("getTestObject"))
    {
      TestObject testObject = new TestObject("testString", true, false, new Date(), 1.0/3.0, 1, null);
      amfMessage.setData(testObject);
    }
    else if (command.equals("getTestArrayOfObjects"))
    {
      List<TestObject> list = new ArrayList<TestObject>();

      for (int i = 0; i < 10; i++)
      {
        TestObject testObject = new TestObject("testString " + i, true, false, new Date(), 1.0/3.0, 1, null);
        list.add(testObject);
      }

      amfMessage.setData(list);
    }
    else if (command.equals("getTestHashtable"))
    {
      Hashtable<String, Object> h = new Hashtable<String, Object>();

      h.put("right_now", new Date());
      h.put("test_double", Math.PI);
      String s = "testString";
      h.put("test_string", s);
      h.put("test_string_again", s);

      TestObject testObject = new TestObject("testString", true, false, new Date(), 1.0/3.0, 1, null);
      h.put("test_object", testObject);
      h.put("test_object_again", testObject);

      amfMessage.setData(h);
    }

    requestMessage.addBody(amfMessage);

    AmfMessageSerializer amfMessageSerializer = new AmfMessageSerializer();
    amfMessageSerializer.initialize(SerializationContext.getSerializationContext(), out, new AmfTrace());
    amfMessageSerializer.writeMessage(requestMessage);
View Full Code Here

            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

     * Processes the HTTP response body.
     */
    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

        // 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

      trace = new AmfTrace();

      AmfMessageDeserializer amfder = new AmfMessageDeserializer();
      amfder.initialize(serialContext, new ByteArrayInputStream(messageBytes), trace);

      message = new ActionMessage();
      messageContext = new ActionContext();
      amfder.readMessage(message, messageContext);

      if (DEBUG)
    System.err.println(trace);
View Full Code Here

  /**
   * CREATE A DESERIALIZER FOR SAMPLE AMF REQUEST
   */
  context = new ActionContext();
  message = new ActionMessage();
  content=new String();
  context.setRequestMessage(message);
  trace.startRequest("----------Deserializing AMF/HTTP request-----");
  dsContext = SerializationContext.getSerializationContext();
  dsContext.instantiateTypes = false;
View Full Code Here

  }

    }
    public byte[] serializeMessage(String contenido) {
  try {
      ActionMessage requestMessage = new ActionMessage();
     
      ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
      MessageBody amfMessage = new MessageBody(targetURI, responseURI, new com.thoughtworks.xstream.XStream().fromXML(contenido));
      requestMessage.addBody(amfMessage);
      MessageSerializer amfMessageSerializer = new AmfMessageSerializer();
      amfMessageSerializer.initialize(dsContext, outBuffer, trace);
      amfMessageSerializer.writeMessage(requestMessage);
      return outBuffer.toByteArray();
  } catch (Exception e) {
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.