|
Java Card v2.2.1 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javacard.framework.service.BasicService | +--javacard.framework.service.RMIService
An implementation of a service that is used to process Java Card platform RMI requests for remotely accessible objects.
Field Summary | |
static byte |
DEFAULT_RMI_INVOKE_INSTRUCTION
The default INS value (0x38) used for the remote method invocation command (INVOKE) in the Java Card platform RMI protocol. |
Constructor Summary | |
RMIService(Remote initialObject)
Creates a new RMIService and sets the specified remote object
as the initial reference for the applet. |
Method Summary | |
boolean |
processCommand(APDU apdu)
Processes the command within the APDU object. |
void |
setInvokeInstructionByte(byte ins)
Defines the instruction byte to be used in place of DEFAULT_RMI_INVOKE_INSTRUCTION in the Java Card platform RMI protocol for the
INVOKE commands used to access the RMIService for remote method
invocations. |
Methods inherited from class javacard.framework.service.BasicService |
fail, getCLA, getINS, getOutputLength, getP1, getP2, getStatusWord, isProcessed, processDataIn, processDataOut, receiveInData, selectingApplet, setOutputLength, setProcessed, setStatusWord, succeed, succeedWithStatusWord |
Methods inherited from class java.lang.Object |
equals |
Methods inherited from interface javacard.framework.service.Service |
processDataIn, processDataOut |
Field Detail |
public static final byte DEFAULT_RMI_INVOKE_INSTRUCTION
Constructor Detail |
public RMIService(Remote initialObject) throws NullPointerException
RMIService
and sets the specified remote object
as the initial reference for the applet.
The initial reference will be published to the client in response
to the SELECT APDU command processed by this object.
The RMIService
instance may create session data to manage exported
remote objects for the current applet session in CLEAR_ON_DESELECT
transient space.
initialObject
- the remotely accessible initial object
NullPointerException
- if the initialObject
parameter is null
Method Detail |
public void setInvokeInstructionByte(byte ins)
DEFAULT_RMI_INVOKE_INSTRUCTION
in the Java Card platform RMI protocol for the
INVOKE commands used to access the RMIService
for remote method
invocations.
Note:
RMIService
instance processes an applet SELECT command. The Java Card platform RMI protocol until then
is unchanged.
ins
- the instruction bytepublic boolean processCommand(APDU apdu)
APDU
object. When invoked, the APDU object
should either be in STATE_INITIAL
with the APDU buffer in the Init format
or in STATE_FULL_INCOMING
with the APDU buffer in the Input Ready format
defined in BasicService
.
This method first checks if the command in the APDU
object is a Java Card
platform RMI access command. The Java Card platform RMI access commands currently defined are:
Applet SELECT and INVOKE. If it is not a Java Card platform RMI access command, this method does
nothing and returns false.
If the command is a Java Card platform RMI access command, this method processes the command and generates the response to be returned to the terminal. For a detailed description of the APDU protocol used in Java Card platform RMI access commands please see the Remote Method Invocation Service chapter of Runtime Environment Specification for the Java Card Platform.
Java Card platform RMI access commands are processed as follows:
RMIService
instance and since that time
some applet instance or the other from within the applet package has been
an active applet instance.
After normal completion, this method returns true
and the APDU object is
in STATE_OUTGOING
and the output response is in the
APDU buffer in the Output Ready format defined in BasicService
.
processCommand
in interface Service
processCommand
in class BasicService
apdu
- the APDU object containing the command being processed.
true
if the command has been processed, false
otherwise
ServiceException
- with the following reason codes:ServiceException.CANNOT_ACCESS_IN_COMMAND
if this is a
Java Card platform RMI access command and the APDU object is not in STATE_INITIAL or in
STATE_FULL_INCOMING
ServiceException.REMOTE_OBJECT_NOT_EXPORTED
if the
remote method returned a remote object which has not been exported.
SecurityException
- if one of the following conditions is met:CLEAR_ON_DESELECT
transient space
is accessed when the currently active context is not the context of the
currently selected applet.
CardRemoteObject
|
Java Card v2.2.1 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |