public function createRequest2($className, $methodName, $args, $headers)
 {
     /*Header[]*/
     $headersArray = null;
     if (count($headers) != 0) {
         $headersArray = array();
         $i = 0;
         foreach ($headers as $headerName => $header) {
             $headersArray[$i] = new Header($headerName, false, -1, new ConcreteObject($header));
             $i++;
         }
     }
     /*Body[]*/
     $bodiesArray = array();
     /*ReqMessage*/
     $bodyMessage = new ReqMessage();
     $bodyMessage->body = new BodyHolder();
     $bodyMessage->body->body = $args;
     $bodyMessage->destination = $this->destination;
     $bodyMessage->timestamp = 0;
     $bodyMessage->timeToLive = 0;
     if ($className != null) {
         $bodyMessage->source = $className;
     }
     $bodyMessage->operation = $methodName;
     $bodiesArray[0] = new Body(".", ".", -1, null);
     /*Message*/
     $request = new Request(3, $headersArray, $bodiesArray);
     $request->setResponseBodyPart($bodyMessage);
     //setResponseBodyData( bodyMessage );
     /*AmfV3Formatter*/
     $formatter = new AmfV3Formatter();
     MessageWriter::writeObject($request, $formatter);
     /*byte[]*/
     $requestBytes = $formatter->getBytes();
     //    var_dump($requestBytes);
     //
     //		Log::log(LoggingConstants::MYDEBUG, ob_get_contents());
     $formatter->cleanup();
     return $requestBytes;
 }