|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectwt.httpgw.HTTPResponse
This class is a carrier of HTTP response information back to an HTTP gateway from a method server. It uses customized serialization code to stream response bodies to the gateway.
Server-side Serialization The server (NetFactor method server) constructs response objects to carry response information back to the gateway. The object contains fields to store response header information, an output stream reference, and a target class and method.
Object serialization stores the RMI marshal stream reference in the object and invokes the target method using Java's reflection API. The target method uses methods on the response object to set response attributes (content-type, status, etc.) and eventually calls a method to retrieve the output stream on which to write the response body. This call causes the response attributes to be written to the marshal stream. When the target method returns, serialization is complete.
Client-side Deserialization The client (HTTP gateway) receives the response object as the return value of a RMI call. It is deserialized before the RMI call completes. In order to support processing of streamed data, the deserialization code looks up the corresponding HTTPGateway object and uses it to send the response directly from the deserialization code.
First the headers are set on the real gateway response, then the content body is forwarded by reading blocks of data from the input stream and writing them to real response output stream until the entire body has been sent.
Note: Four response headers are set by default: Protocol is set to HTTP/1.0; Status is set to 200 (OK); and Content-Type is set to text/html. Expires is set to long ago, the Java epoch - date(0) If you need to set other headers or change these defaults, you must do so in your response processing PRIOR to calling getOutputStream.
Supported API: true
Extendable: false
Field Summary | |
Throwable |
respException
Exception caught unmarshalling or invoking target method |
(package private) static long |
serialVersionUID
|
Constructor Summary | |
HTTPResponse()
|
Method Summary | |
abstract boolean |
containsHeader(String s)
Checks if the response header is present. |
abstract Object |
get(String s)
Gets the value of this response header key. |
abstract OutputStream |
getOutputStream()
Called to get the output stream to write the data to. |
abstract Enumeration |
keys()
Gets the response header keys. |
abstract void |
setDateHeader(String s1,
long date)
Sets a date type response header. |
abstract void |
setHeader(String s1,
String s2)
Sets a string type response header. |
abstract void |
setIntHeader(String s1,
int v1)
Sets a int type response header. |
abstract void |
setRemoteHost(String remote_host)
Setter for the remote host that will be displayed in exception tracebacks. |
abstract void |
setRespTarget(Method method,
Object[] args)
Setter for the target method that will generate the real response to the output stream. |
abstract void |
setStatus(int v1)
Sets a simple Status response header. |
abstract void |
setStatus(int v1,
String s1)
Sets a Status response header. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public transient Throwable respException
static final long serialVersionUID
Constructor Detail |
public HTTPResponse()
Method Detail |
public abstract OutputStream getOutputStream() throws IOException
IOException
- if not marshaling response in writeObject.
the output stream is null until such time.
Also, if the response target class or method is
null. There is not a proper business class or
method to write the response.public abstract void setRespTarget(Method method, Object[] args)
method
- is the target business Methodargs
- are the object array of arguments
needed my the target method.public abstract void setRemoteHost(String remote_host)
public abstract boolean containsHeader(String s)
s
- String the header to search for.
public abstract Enumeration keys()
public abstract Object get(String s)
s
- the key, as a string, to get the value of.
public abstract void setHeader(String s1, String s2)
s1
- String name of the headers2
- String value to which header is setpublic abstract void setDateHeader(String s1, long date)
s1
- String name of the headerdate
- long value to which header is set
value is milliseconds since the epoch.public abstract void setIntHeader(String s1, int v1)
s1
- String name of the headerv1
- int value to which header is setpublic abstract void setStatus(int v1)
v1
- Integer Status codepublic abstract void setStatus(int v1, String s1)
v1
- Integer Status codes1
- String Status reason code
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |