类 Hessian2Output

  • 所有已实现的接口:
    Hessian2Constants

    public class Hessian2Output
    extends AbstractHessianOutput
    implements Hessian2Constants
    Output stream for Hessian 2 requests.

    Since HessianOutput does not depend on any classes other than in the JDK, it can be extracted independently into a smaller package.

    HessianOutput is unbuffered, so any client needs to provide its own buffering.

     OutputStream os = ...; // from http connection
     Hessian2Output out = new Hessian2Output(os);
     String value;
    
     out.startCall("hello", 1); // start hello call
     out.writeString("arg1");   // write a string argument
     out.completeCall();        // complete the call
     
    • 字段详细资料

    • 构造器详细资料

      • Hessian2Output

        public Hessian2Output​( os)
        Creates a new Hessian output stream, initialized with an underlying output stream.
        参数:
        os - the underlying output stream.
    • 方法详细资料

      • reset

        public void reset()
        Resets all counters and references
      • isCloseStreamOnClose

        public boolean isCloseStreamOnClose()
      • setCloseStreamOnClose

        public void setCloseStreamOnClose​(boolean isClose)
      • call

        public void call​( method,
                         [] args)
                  throws 
        Writes a complete method call.
        覆盖:
        call 在类中 AbstractHessianOutput
        抛出:
      • startCall

        public void startCall​( method,
                              int length)
                       throws 
        Starts the method call. Clients would use startCall instead of call if they wanted finer control over writing the arguments, or needed to write headers.

         C
         string # method name
         int    # arg count
         
        指定者:
        startCall 在类中 AbstractHessianOutput
        参数:
        method - the method name to call.
        抛出:
      • startCall

        public void startCall()
                       throws 
        Writes the call tag. This would be followed by the method and the arguments

         C
         
        指定者:
        startCall 在类中 AbstractHessianOutput
        参数:
        method - the method name to call.
        抛出:
      • startEnvelope

        public void startEnvelope​( method)
                           throws 
        Starts an envelope.

         E major minor
         m b16 b8 method-name
         
        参数:
        method - the method name to call.
        抛出:
      • completeEnvelope

        public void completeEnvelope()
                              throws 
        Completes an envelope.

        A successful completion will have a single value:

         Z
         
        抛出:
      • writeMethod

        public void writeMethod​( method)
                         throws 
        Writes the method tag.

         string
         
        指定者:
        writeMethod 在类中 AbstractHessianOutput
        参数:
        method - the method name to call.
        抛出:
      • startReply

        public void startReply()
                        throws 
        Starts the reply

        A successful completion will have a single value:

         R
         
        覆盖:
        startReply 在类中 AbstractHessianOutput
        抛出:
      • writeVersion

        public void writeVersion()
                          throws 
        抛出:
      • completeReply

        public void completeReply()
                           throws 
        Completes reading the reply

        A successful completion will have a single value:

         z
         
        覆盖:
        completeReply 在类中 AbstractHessianOutput
        抛出:
      • startMessage

        public void startMessage()
                          throws 
        Starts a packet

        A message contains several objects encapsulated by a length

         p x02 x00
         
        抛出:
      • completeMessage

        public void completeMessage()
                             throws 
        Completes reading the message

        A successful completion will have a single value:

         z
         
        抛出:
      • writeFault

        public void writeFault​( code,
                                message,
                                detail)
                        throws 
        Writes a fault. The fault will be written as a descriptive string followed by an object:

         F map
         

         F H
         \x04code
         \x10the fault code
         

        \x07message \x11the fault message

        \x06detail M\xnnjavax.ejb.FinderException ... Z Z

        覆盖:
        writeFault 在类中 AbstractHessianOutput
        参数:
        code - the fault code, a three digit
        抛出:
      • writeObject

        public void writeObject​( object)
                         throws 
        Writes any object to the output stream.
        指定者:
        writeObject 在类中 AbstractHessianOutput
        抛出:
      • writeListBegin

        public boolean writeListBegin​(int length,
                                       type)
                               throws 
        Writes the list header to the stream. List writers will call writeListBegin followed by the list contents and then call writeListEnd.

         list ::= V type value* Z
              ::= v type int value*
         
        指定者:
        writeListBegin 在类中 AbstractHessianOutput
        返回:
        true for variable lists, false for fixed lists
        抛出:
      • writeListEnd

        public void writeListEnd()
                          throws 
        Writes the tail of the list to the stream for a variable-length list.
        指定者:
        writeListEnd 在类中 AbstractHessianOutput
        抛出:
      • writeMapBegin

        public void writeMapBegin​( type)
                           throws 
        Writes the map header to the stream. Map writers will call writeMapBegin followed by the map contents and then call writeMapEnd.

         map ::= M type ( )* Z
             ::= H ( )* Z
         
        指定者:
        writeMapBegin 在类中 AbstractHessianOutput
        抛出:
      • writeObjectBegin

        public int writeObjectBegin​( type)
                             throws 
        Writes the object definition

         C <string> <int> <string>*
         
        覆盖:
        writeObjectBegin 在类中 AbstractHessianOutput
        返回:
        true if the object has already been defined.
        抛出:
      • writeObjectEnd

        public void writeObjectEnd()
                            throws 
        Writes the tail of the object definition to the stream.
        覆盖:
        writeObjectEnd 在类中 AbstractHessianOutput
        抛出:
      • writeBoolean

        public void writeBoolean​(boolean value)
                          throws 
        Writes a boolean value to the stream. The boolean will be written with the following syntax:

         T
         F
         
        指定者:
        writeBoolean 在类中 AbstractHessianOutput
        参数:
        value - the boolean value to write.
        抛出:
      • writeInt

        public void writeInt​(int value)
                      throws 
        Writes an integer value to the stream. The integer will be written with the following syntax:

         I b32 b24 b16 b8
         
        指定者:
        writeInt 在类中 AbstractHessianOutput
        参数:
        value - the integer value to write.
        抛出:
      • writeLong

        public void writeLong​(long value)
                       throws 
        Writes a long value to the stream. The long will be written with the following syntax:

         L b64 b56 b48 b40 b32 b24 b16 b8
         
        指定者:
        writeLong 在类中 AbstractHessianOutput
        参数:
        value - the long value to write.
        抛出:
      • writeDouble

        public void writeDouble​(double value)
                         throws 
        Writes a double value to the stream. The double will be written with the following syntax:

         D b64 b56 b48 b40 b32 b24 b16 b8
         
        指定者:
        writeDouble 在类中 AbstractHessianOutput
        参数:
        value - the double value to write.
        抛出:
      • writeUTCDate

        public void writeUTCDate​(long time)
                          throws 
        Writes a date to the stream.

         date ::= d   b7 b6 b5 b4 b3 b2 b1 b0
              ::= x65 b3 b2 b1 b0
         
        指定者:
        writeUTCDate 在类中 AbstractHessianOutput
        参数:
        time - the date in milliseconds from the epoch in UTC
        抛出:
      • writeNull

        public void writeNull()
                       throws 
        Writes a null value to the stream. The null will be written with the following syntax

         N
         
        指定者:
        writeNull 在类中 AbstractHessianOutput
        参数:
        value - the string value to write.
        抛出:
      • writeString

        public void writeString​( value)
                         throws 
        Writes a string value to the stream using UTF-8 encoding. The string will be written with the following syntax:

         S b16 b8 string-value
         

        If the value is null, it will be written as

         N
         
        指定者:
        writeString 在类中 AbstractHessianOutput
        参数:
        value - the string value to write.
        抛出:
      • writeString

        public void writeString​(char[] buffer,
                                int offset,
                                int length)
                         throws 
        Writes a string value to the stream using UTF-8 encoding. The string will be written with the following syntax:

         S b16 b8 string-value
         

        If the value is null, it will be written as

         N
         
        指定者:
        writeString 在类中 AbstractHessianOutput
        参数:
        value - the string value to write.
        抛出:
      • writeBytes

        public void writeBytes​(byte[] buffer)
                        throws 
        Writes a byte array to the stream. The array will be written with the following syntax:

         B b16 b18 bytes
         

        If the value is null, it will be written as

         N
         
        指定者:
        writeBytes 在类中 AbstractHessianOutput
        参数:
        value - the string value to write.
        抛出:
      • writeBytes

        public void writeBytes​(byte[] buffer,
                               int offset,
                               int length)
                        throws 
        Writes a byte array to the stream. The array will be written with the following syntax:

         B b16 b18 bytes
         

        If the value is null, it will be written as

         N
         
        指定者:
        writeBytes 在类中 AbstractHessianOutput
        参数:
        value - the string value to write.
        抛出:
      • writeByteBufferPart

        public void writeByteBufferPart​(byte[] buffer,
                                        int offset,
                                        int length)
                                 throws 
        Writes a byte buffer to the stream.

         b b16 b18 bytes
         
        指定者:
        writeByteBufferPart 在类中 AbstractHessianOutput
        抛出:
      • writeByteBufferEnd

        public void writeByteBufferEnd​(byte[] buffer,
                                       int offset,
                                       int length)
                                throws 
        Writes a byte buffer to the stream.

         b b16 b18 bytes
         
        指定者:
        writeByteBufferEnd 在类中 AbstractHessianOutput
        抛出:
      • getBytesOutputStream

        public  getBytesOutputStream()
                                          throws 
        Returns an output stream to write binary data.
        抛出:
      • addRef

        public boolean addRef​( object)
                       throws 
        If the object has already been written, just write its ref.
        指定者:
        addRef 在类中 AbstractHessianOutput
        参数:
        object - the object to add as a reference.
        返回:
        true if we're writing a ref.
        抛出:
      • replaceRef

        public boolean replaceRef​( oldRef,
                                   newRef)
                           throws 
        Replaces a reference from one object to another.
        指定者:
        replaceRef 在类中 AbstractHessianOutput
        抛出:
      • writeStreamingObject

        public void writeStreamingObject​( obj)
                                  throws 
        Starts the streaming message

        A streaming message starts with 'P'

         P x02 x00
         
        抛出:
      • startStreamingPacket

        public void startStreamingPacket()
                                  throws 
        Starts a streaming packet

        A streaming message starts with 'P'

         P x02 x00
         
        抛出:
      • endStreamingPacket

        public void endStreamingPacket()
                                throws 
        抛出:
      • printLenString

        public void printLenString​( v)
                            throws 
        Prints a string to the stream, encoded as UTF-8 with preceeding length
        参数:
        v - the string to print.
        抛出:
      • printString

        public void printString​( v)
                         throws 
        Prints a string to the stream, encoded as UTF-8
        参数:
        v - the string to print.
        抛出:
      • printString

        public void printString​( v,
                                int strOffset,
                                int length)
                         throws 
        Prints a string to the stream, encoded as UTF-8
        参数:
        v - the string to print.
        抛出:
      • printString

        public void printString​(char[] v,
                                int strOffset,
                                int length)
                         throws 
        Prints a string to the stream, encoded as UTF-8
        参数:
        v - the string to print.
        抛出:
      • flushBuffer

        public final void flushBuffer()
                               throws 
        抛出: