This chapter includes the following sections:
Accessing EJBs with a Java Client
A Java RMI client uses an ORB and IIOP to access Enterprise beans residing on a WebLogic Server instance.
See Understanding Enterprise JavaBeans in Developing Enterprise JavaBeans, Version 2.1, for Oracle WebLogic Server.
Accessing EJBs with a CORBA/IDL Client
A non-Java platform CORBA/IDL client can access any Enterprise bean object on WebLogic Server. The sources of the mapping information are the EJB classes as defined in the Java source files. WebLogic Server provides the
weblogic.appc utility for generating required IDL files.
These files represent the CORBA view into the state and behavior of the target EJB. Use the
weblogic.appc utility to:
Place the EJB classes, interfaces, and deployment descriptor files into a JAR file.
Generate WebLogic Server container classes for the EJBs.
Run each EJB container class through the RMI compiler to create stubs and skeletons.
Generate a directory tree of CORBA IDL files describing the CORBA interface to these classes.
weblogic.appc utility supports a number of command qualifiers. See Developing a CORBA/IDL Client.
Resulting files are processed using the compiler, reading source files from the
idlSources directory and generating CORBA C++ stub and skeleton files. These generated files are sufficient for all CORBA data types with the exception of value types (see Limitations of WebLogic RMI-IIOP in Developing RMI Applications for Oracle WebLogic Server.) Generated IDL files are placed in the
idlSources directory. The Java-to-IDL process is full of pitfalls. Refer to the Java Language Mapping to OMG IDL specification at
See Enterprise JavaBeans Components and CORBA Clients: A Developer Guide, at
Example IDL Generation
The following is an example of how to generate the IDL from a bean you have already created:
Generate the IDL files
> java weblogic.appc -compiler javac -keepgenerated -idl -idlDirectory idlSources build\std_ejb_iiop.jar %APPLICATIONS%\ejb_iiop.jar
Compile the EJB interfaces and client application (the example here uses a CLIENT_CLASSES and APPLICATIONS target variable):
> javac -d %CLIENT_CLASSES% Trader.java TraderHome.java TradeResult.java Client.java
Run the IDL compiler against the IDL files built in Step 1:
>%IDL2CPP% idlSources\examples\rmi_iiop\ejb\Trader.idl . . . >%IDL2CPP% idlSources\javax\ejb\RemoveException.idl
Compile your C++ client.