Macromedia flash remoting mx-using flash remoting for flash mx 2004 actionscript 2.0 Manuel D’Utilisation
128
Chapter 7: Using Flash Remoting for Java
Calling Enterprise JavaBeans (EJBs) from Flash
The following sections describe how to get a reference to an EJBHome object and call Enterprise
JavaBeans (EJB) methods from ActionScript.
JavaBeans (EJB) methods from ActionScript.
Getting a reference to an EJBHome object in ActionScript
Before calling the methods of an EJB from ActionScript, you must get a reference to an
EJBHome object.
EJBHome object.
To get a reference to an EJBHome object:
1.
Import the mx.remoting.Service file:
import mx.remoting.Service;
2.
Connect to the Flash Remoting gateway and get a reference to the EJBHome object:
SampleLoanHome = new Service(
"http://localhost/flashservices/gateway",
null,
"SampleLoan",
null,
null);
null,
"SampleLoan",
null,
null);
The first parameter of the Service object is the gateway URL. The third parameter is the Java
Naming and Directory Interface (JNDI) name of the EJBHome object. The JNDI name
cannot contain a period (.).
Naming and Directory Interface (JNDI) name of the EJBHome object. The JNDI name
cannot contain a period (.).
Note: There are several other ways to specify the gateway URL. For more information, see
Invoking EJB methods in ActionScript
Unlike JavaBeans and Java classes, you must invoke the
create()
method of an EJBHome object
and return an EJBObject object before calling EJBObject methods. After you call the
create()
method of an EJBHome object, you can use the ActionScript
create_Result(re:ResultEvent)
function to get a reference to the EJBObject object and
invoke its methods.
For example, the following method of a stateless session bean performs loan calculations based on
loan principal, term, and interest rate:
loan principal, term, and interest rate:
public double calculate(double principal, int months, float rate){
if (rate < 0 || rate>1) return 0.0;
double monthlyPayment = principal * (rate / (1 - Math.pow(1 +
if (rate < 0 || rate>1) return 0.0;
double monthlyPayment = principal * (rate / (1 - Math.pow(1 +
rate,-months)));
return monthlyPayment;
}
}
To invoke the preceding method, you could use the following ActionScript code:
import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;
import mx.remoting.PendingCall;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;