public class RMIService extends BasicService implements RemoteService
Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
RMIService(Remote initialObject)
Creates a new
RMIService and sets the specified remote
object as the initial reference for the applet. |
Modifier and Type | Method and Description |
---|---|
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. |
fail, getCLA, getINS, getOutputLength, getP1, getP2, getStatusWord, isProcessed, processDataIn, processDataOut, receiveInData, selectingApplet, setOutputLength, setProcessed, setStatusWord, succeed, succeedWithStatusWord
processDataIn, processDataOut
public static final byte DEFAULT_RMI_INVOKE_INSTRUCTION
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 objectNullPointerException
- if the initialObject
parameter is
null
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, Java Card Platform, Classic Edition.
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
otherwiseServiceException
- 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.
TransactionException
- with the following reason code:
TransactionException.IN_PROGRESS
if this
is a Java Card platform RMI INVOKE command and the remote
method returned a remote object which has been exported
within a transaction which is still in progress or if this is
an applet SELECT command and the response information in the
APDU buffer includes an initial reference object which has
been exported within a transaction which is still in
progress.
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
Copyright © 1998, 2015, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms