public abstract class ServerRequest extends Object
Request
object in the DII.
The ORB is responsible for creating this embodiment of a request,
and delivering it to a Dynamic Implementation Routine (DIR).
A dynamic servant (a DIR) is created by implementing the
DynamicImplementation class,
which has a single invoke method. This method accepts a
ServerRequest object.
The abstract class ServerRequest defines
methods for accessing the
method name, the arguments and the context of the request, as
well as methods for setting the result of the request either as a
return value or an exception.
A subtlety with accessing the arguments of the request is that the
DIR needs to provide type information about the
expected arguments, since there is no compiled information about
these. This information is provided through an NVList,
which is a list of NamedValue objects.
Each NamedValue object
contains an Any object, which in turn
has a TypeCode object representing the type
of the argument.
Similarly, type information needs to be provided for the response,
for either the expected result or for an exception, so the methods
result and except take an Any
object as a parameter.
DynamicImplementation,
NVList,
NamedValue| Constructor and Description |
|---|
ServerRequest() |
| Modifier and Type | Method and Description |
|---|---|
void |
arguments(NVList args)
Specifies method parameter types and retrieves "in" and "inout"
argument values.
|
abstract Context |
ctx()
Returns the context information specified in IDL for the operation
when the operation is not an attribute access and the operation's IDL
definition contains a context expression; otherwise it returns
a nil
Context reference. |
void |
except(Any any)
Deprecated.
use set_exception()
|
String |
op_name()
Deprecated.
use operation()
|
String |
operation()
Throws an
org.omg.CORBA.NO_IMPLEMENT exception. |
void |
params(NVList params)
Deprecated.
use the method
arguments |
void |
result(Any any)
Deprecated.
use the method
set_result |
void |
set_exception(Any any)
Throws an
org.omg.CORBA.NO_IMPLEMENT exception. |
void |
set_result(Any any)
Throws an
org.omg.CORBA.NO_IMPLEMENT exception. |
@Deprecated public String op_name()
_get_<attribute_name>
and _set_<attribute_name>,
respectively.public String operation()
org.omg.CORBA.NO_IMPLEMENT exception.
Retrieves the name of the operation being
invoked. According to OMG IDL's rules, these names must be unique
among all operations supported by this object's "most-derived"
interface. Note that the operation names for getting and setting
attributes are _get_<attribute_name>
and _set_<attribute_name>,
respectively.
CORBA
package comments for unimplemented features@Deprecated public void params(NVList params)
arguments
Note that this method is deprecated; use the method
arguments in its place.
Unless it calls the method set_exception,
the DIR must call this method exactly once, even if the
method signature contains no parameters. Once the method
arguments or set_exception
has been called, calling arguments on the same
ServerRequest object
will result in a BAD_INV_ORDER system exception.
The DIR must pass in to the method arguments
an NVList initialized with TypeCodes and Flags
describing the parameter types for the operation, in the order in which
they appear in the IDL specification (left to right). A
potentially-different NVList will be returned from
arguments, with the
"in" and "inout" argument values supplied. If it does not call
the method set_exception,
the DIR must supply the returned NVList with return
values for any "out" arguments before returning, and may also change
the return values for any "inout" arguments.
params - the arguments of the method, in the
form of an NVList objectpublic void arguments(NVList args)
set_exception,
the DIR must call this method exactly once, even if the
method signature contains no parameters. Once the method
arguments or set_exception
has been called, calling arguments on the same
ServerRequest object
will result in a BAD_INV_ORDER system exception.
The DIR must pass in to the method arguments
an NVList initialized with TypeCodes and Flags
describing the parameter types for the operation, in the order in which
they appear in the IDL specification (left to right). A
potentially-different NVList will be returned from
arguments, with the
"in" and "inout" argument values supplied. If it does not call
the method set_exception,
the DIR must supply the returned NVList with return
values for any "out" arguments before returning, and it may also change
the return values for any "inout" arguments.args - the arguments of the method, in the
form of an NVListCORBA
package comments for unimplemented features@Deprecated public void result(Any any)
set_result
Note that this method is deprecated; use the method
set_result in its place.
Unless the method
set_exception is called, if the invoked method
has a non-void result type, the method set_result
must be called exactly once before the DIR returns.
If the operation has a void result type, the method
set_result may optionally be
called once with an Any object whose type is
tk_void. Calling the method set_result before
the method arguments has been called or after
the method set_result or set_exception has been
called will result in a BAD_INV_ORDER exception. Calling the method
set_result without having previously called
the method ctx when the IDL operation contains a
context expression, or when the NVList passed to arguments did not
describe all parameters passed by the client, may result in a MARSHAL
system exception.
any - an Any object containing the return value to be setpublic void set_result(Any any)
org.omg.CORBA.NO_IMPLEMENT exception.
Specifies any return value for the call. Unless the method
set_exception is called, if the invoked method
has a non-void result type, the method set_result
must be called exactly once before the DIR returns.
If the operation has a void result type, the method
set_result may optionally be
called once with an Any object whose type is
tk_void. Calling the method set_result before
the method arguments has been called or after
the method set_result or set_exception has been
called will result in a BAD_INV_ORDER exception. Calling the method
set_result without having previously called
the method ctx when the IDL operation contains a
context expression, or when the NVList passed to arguments did not
describe all parameters passed by the client, may result in a MARSHAL
system exception.
any - an Any object containing the return value to be setCORBA
package comments for unimplemented features@Deprecated public void except(Any any)
any - the Any object containing the exceptionpublic void set_exception(Any any)
org.omg.CORBA.NO_IMPLEMENT exception.
Returns the given exception to the client. This method
is invoked by the DIR, which may call it at any time.
The Any object passed to this method must
contain either a system
exception or one of the user exceptions specified in the
invoked operation's IDL definition. Passing in an
Any object that does not contain an exception
will cause a BAD_PARAM system exception to be thrown. Passing
in an unlisted user exception will result in either the DIR receiving a
BAD_PARAM system exception or in the client receiving an
UNKNOWN_EXCEPTION system exception.
any - the Any object containing the exceptionBAD_PARAM - if the given Any object does not
contain an exception or the exception is an
unlisted user exceptionUNKNOWN_EXCEPTION - if the given exception is an unlisted
user exception and the DIR did not
receive a BAD_PARAM exceptionCORBA
package comments for unimplemented featurespublic abstract Context ctx()
Context reference. Calling the method
ctx before the method arguments has
been called or after the method ctx,
set_result, or set_exception
has been called will result in a
BAD_INV_ORDER system exception.BAD_INV_ORDER - if (1) the method ctx is called
before the method arguments or
(2) the method ctx is called
after calling set_result or
set_exception Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.