![]() |
![]() |
|
|
T-Engine EJB-to-CORBA/Java Simpapp Sample Application
The topic includes the following sections:
Note: Each sample application directory tree provided with the WebLogic Enterprise software includes a Readme.txt file that explains how to build and run the sample. Refer to this file in the following directory for troubleshooting information or other last-minute information about using the EJB-to-CORBA/Java sample application:
Window NT
$TUXDIR\samples\interop\ejb_corbaj
UNIX
$TUXDIR/samples/interop/ejb_corbaj
How the EJB-to-CORBA/Java Simpapp Sample Application Works
The EJB-to-CORBA/Java Simpapp sample application has an EJB client, an EJB server deploying the SimpBean EJB and an EJB-to-CORBA bridge object, and a CORBA server deploying a CORBA object.
The SimpBean EJB has the following two remote methods:
The CORBA Simple object has the following two methods:
Figure 2-1 illustrates how the EJB-to-CORBA/Java Simpapp sample application works.
Figure 2-1 EJB-to-CORBA/Java Simpapp Sample Application
To run the m3idltojava compiler that is used by the EJB-to-CORBA/Java Simpapp sample application, you need to install Visual C++ version 6.0 with Service Pack 3 or later for Visual Studio. The m3idltojava compiler is installed by the WebLogic Enterprise software in the bin directory under TUXDIR.
Implementing the Bridge Object to Invoke a CORBA/Java Object
The SimpleBridge Java object implements bridge design pattern. This object serves as a bridge between the SimpBean EJB and the CORBA/Java Simple object, and it is created by the SimpBean EJB.
The SimpleBridge Java object performs the following functions:
Listing 2-1 shows the methods on the SimpleBridge object that delegate the SimpBean requests to the CORBA/Java Simple object.
Listing 2-1 SimpleBridge Object Code
public class SimpleBridge
{
private Simple simple = null;
public SimpleBridge ()
{
simple = getSimple();
}
public String doUpper(String mixedStr)
{
// Convert the string to upper case.
org.omg.CORBA.StringHolder upperStr =
new org.omg.CORBA.StringHolder(mixedStr);
simple.to_upper(upperStr);
System.out.println("in SimpleBridge.doUpper()");
return upperStr.value;
}
public String doLower(String mixedStr)
{
// Convert the string to lower case.
String lowerStr = simple.to_lower(mixedStr);
System.out.println("in SimpleBridge.doLower()");
return lowerStr;
}
public Simple getSimple()
{
try {
// Obtain the bootstrap object,
// the TOBJADDR property contains host and port to connect to.
Tobj_Bootstrap bootstrap = TP.bootstrap();
// Use the bootstrap object to find the factory finder.
org.omg.CORBA.Object fact_finder_oref =
bootstrap.resolve_initial_references("FactoryFinder");
// Narrow the factory finder.
FactoryFinder fact_finder_ref =
FactoryFinderHelper.narrow(fact_finder_oref);
// Use the factory finder to find the simple factory.
org.omg.CORBA.Object simple_fact_oref =
fact_finder_ref.find_one_factory_by_id(SimpleFactoryHelper.id());
// Narrow the simple factory.
SimpleFactory simple_factory_ref =
SimpleFactoryHelper.narrow(simple_fact_oref);
// Find the simple object.
Simple simple = simple_factory_ref.find_simple();
// everything succeeded.
return simple;
}
// catch the exceptions
return null;
}
}
The OMG IDL Code for the EJB-to-CORBA/Java Simpapp Interfaces
The sample application described in this chapter implements the CORBA interfaces listed in Table 2-1.
Interface |
Description |
Operation |
Policies |
---|---|---|---|
SimpleFactory |
Creates object references to the Simple object |
find_simple() |
Activation: method Transaction: optional |
Simple |
Converts the case of a string |
to_upper() to_lower() |
Activation: method Transaction: optional |
Listing 2-2 shows the simple.idl file that defines the CORBA interfaces in the EJB-to-CORBA/Java Simpapp sample application.
Listing 2-2 OMG IDL Code for the EJB-to-CORBA/Java Simpapp Sample Application
#pragma prefix "beasys.com"
interface Simple
{
//Convert a string to lower case (return a new string)
string to_lower(in string val);
//Convert a string to upper case (in place)
void to_upper(inout string val);
};
interface SimpleFactory
{
Simple find_simple();
};
Building and Running the EJB-to-CORBA/Java Simpapp Sample Application
To build and run the EJB-to-CORBA/Java Simpapp sample application, complete the following steps:
The following sections describe these steps, and also explain the following:
Verifying the Settings of the Environment Variables
Before building and running the EJB-to-CORBA/Java Simpapp sample application, you need to ensure that certain environment variables are set on your system. In most cases, these environment variables are set as part of the installation procedure. However, you need to check the environment variables to ensure they reflect correct information.
Table 2-2 lists the environment variables required to run the EJB-to-CORBA/Java Simpapp sample application.
Environment Variable |
Description |
---|---|
TUXDIR |
The directory path where you installed the WebLogic Enterprise software. For example: Windows NT TUXDIR=c:\WLEdir UNIX TUXDIR=/usr/local/WLEdir |
JAVA_HOME |
The directory path where you installed the JDK software. For example: Windows NT JAVA_HOME=c:\JDK1.2.2 UNIX JAVA_HOME=/usr/local/JDK1.2.2 |
You may optionally set the following system environment variables to change their default value prior to running the EJB-to-CORBA/Java Simpapp sample application runme command. See the Administration Guide for more information about selecting appropriate values for these environment variables.
Table 2-3 lists the optional environment variables required to run the EJB-to-CORBA/Java Simpapp sample application.
Environment Variable |
Description |
---|---|
HOST |
The host name portion of the TCP/IP network address used by the ISL process to accept connections from CORBA. The default value is the name of the local machine. |
PORT |
The TCP port number at which the ISL process listens for incoming requests; it must be a number between 0 and 65535. The default value is 2468. |
IPCKEY |
The address of shared memory; the address must be a number greater than 32769 unique to this application on this system. The default value is 55432. |
Verifying the Environment Variables
To verify that the information for the environment variables defined during installation is correct, complete the following steps:
Windows NT
The Control Panel appears.
The System Properties window appears.
The Environment page appears.
UNIX
ksh prompt>printenv TUXDIR
ksh prompt>printenv JAVA_HOME
Changing the Environment Variables
To change the environment variable settings, complete the following steps:
Windows NT
The Control Panel appears.
The System Properties window appears.
The Environment page appears.
UNIX
ksh prompt>export TUXDIR=directorypath
ksh prompt>export JAVA_HOME=directorypath
Copying the Files for the Java Simpapp Sample Application into a Work Directory
You need to copy the files for the EJB-to-CORBA/Java Simpapp sample application into a work directory on your local machine. The files for the EJB-to-CORBA/Java Simpapp sample application are located in the following directories under TUXDIR:
Windows NT
$TUXDIR\samples\interop\ejb_corbaj
UNIX
$TUXDIR/samples/interop/ejb_corbaj
The following steps describe how to execute a makefile to copy all the example files into a work directory.
Windows NT
> copy $TUXDIR\samples\interop\ejb_corbaj\*.* <work_directory>
UNIX
> cp -R $TUXDIR/samples/interop/ejb_corbaj/* <work_directory>
Windows NT
>nmake -f makefile.nt copy
UNIX
>make -f makefile.mk copy
Files in the Work Directory
This section lists and describes the files copied into your work directory after you have completed the steps described in the previous section.
The EJB-to-CORBA/Java Simpapp sample application files exist in the following sets:
Table 2-4 lists and describes the source files for the EJB portion of this sample application. These are the files that exist after you execute the make command. These files are copied into a subdirectory named ejb.
File |
Description |
---|---|
ejb-jar.xml |
The standard deployment descriptor for the SimpBean class. |
weblogic-ejb-extensions.xml |
The XML file specifying the WebLogic EJB extensions to the deployment descriptor DTD. |
SimpClient.java |
The EJB Simpapp client. |
SimpBean.java |
The SimpBean class. This is an example of a stateless session bean. This bean contains the methods that invoke the SimpleBridge class to delegate the invocations on the Simple CORBA/Java object. |
Simp.java |
The Remote interface of the SimpBean class. |
SimpHome.java |
The Home interface of the SimpBean class. |
Table 2-5 lists and describes the source files for the CORBA/Java portion of this sample application. They are copied into a subdirectory named corbaj.
File |
Description |
---|---|
Simple.idl |
The OMG IDL that declares the SimpleFactory and Simple interfaces. |
Simple.xml |
The Server Description File for the Simple CORBA object. |
SimpleBridge.Java |
The EJB-to-CORBA/Java Simpapp SimpleBridge class. This class is used by the SimpBean class to communicate with the CORBA/Java Simple object. This is the class that effects the interoperability between the EJB and the CORBA/Java object. |
ServerImpl.Java |
The implementation of the Server.initialize and Server.release methods. |
SimpleFactoryImpl.Java |
The implementation of the SimpleFactory methods. |
SimpleImpl.Java |
The implementation of the Simple methods. |
Table 2-6 lists and describes the utility files for this sample application.
File |
Description |
---|---|
Readme.txt |
Contains directions for building and executing the EJB-to-CORBA/Java Simpapp sample application. |
runme.cmd |
The Windows NT batch file that contains commands to build and execute the EJB-to-CORBA/Java Simpapp sample application. |
runme.ksh |
The UNIX Korn shell script that contains commands to build and execute the EJB-to-CORBA/Java Simpapp sample application. |
makefile.nt |
The common makefile for the EJB-to-CORBA/Java Simpapp sample application on the Windows NT platform. This makefile can be used directly by the Visual C++ nmake command. The makefile.nt file is included by the smakefile.nt file. |
smakefile.nt |
The makefile for the EJB-to-CORBA/Java Simpapp sample application to be used by Symantec's Visual Café smake program. |
makefile.mk |
The makefile for the EJB-to-CORBA/Java Simpapp sample application on the UNIX platform. |
Changing the Protection Attribute on the Files for the EJB-to-CORBA/Java Simpapp Sample Application
During the installation of the WebLogic Enterprise software, the sample application files are marked read-only. Before you can edit or build the files in the EJB-to-CORBA/Java Simpapp sample application, you need to change the protection attribute of the files you copied into your work directory (including the respective ejb and corbaj subdirectories), as follows:
Windows NT
prompt>attrib /S -r drive:\workdirectory\*.*
UNIX
prompt>/bin/ksh
ksh prompt>chmod +w /workdirectory/*.*
On the UNIX operating system platform, you also need to change the permission of runme.ksh to give execute permission to the file, as follows:
ksh prompt>chmod +x runme.ksh
Executing the runme Command
The runme command automates the following steps:
To build and run the EJB-to-CORBA Simpapp sample application, enter the runme command, as follows:
Windows NT
prompt>cd workdirectory
prompt>runme
UNIX
ksh prompt>cd workdirectory
ksh prompt>./runme.ksh
The EJB-to-CORBA/Java Simpapp sample application runs and prints the following messages:
Testing simpapp
cleaned up
prepared
built
loaded ubb
booted
ran
shutdown
saved results
PASSED
All of the sample application output is placed in the results directory, which is located in the ejb_corbaj work directory. You can check in the results directory for the following files:
Running the Sample Application
After you have executed the runme command, you can run the EJB-to-CORBA/Java Simpapp sample application manually if you like.
To manually run the EJB-to-CORBA/Java Simpapp sample application:
Windows NT
prompt>results\setenv
UNIX
prompt>. results/setenv.ksh
Windows NT
prompt>tmboot -y
prompt>java -classpath %CLIENTCLASSPATH% ejb.SimpClient corbaloc:%TOBJADDR%
UNIX
prompt>tmboot -y
prompt>java -classpath ${CLIENTCLASSPATH} ejb.SimpClient corbaloc:${TOBJADDR}
String?
Hello World
HELLO WORLD
hello world
All of the sample application output is placed in the results directory. You can check in that directory for the following files:
Processes and Files Generated by the EJB-to-CORBA/Java Simpapp Sample Application
This section lists and describes the processes started and the files generated by the EJB-to-CORBA/Java Simpapp sample application.
Processes Started
When the tmboot command is executed to start the EJB-to-CORBA/Java Simpapp sample application, the server processes in Table 2-7 are started:
Process |
Description |
---|---|
TMSYSEVT |
The BEA Tuxedo system Event Broker. |
TMFFNAME |
Starts the following TMFFNAME processes:
|
JavaServer |
The JavaServer process that deploys the SimpBean EJB and hosts the implementation of the SimpBridge CORBA object. The JavaServer takes one argument, SimpleEjb.jar, which is the module for the SimpBean EJB. |
JavaServer |
The JavaServer process which deploys the Simple CORBA object (the deployment of this process also includes the SimpleFactory factory for the Simple object). The JavaServer takes one argument, SimpleCorba.jar, which is the module for the Simple CORBA object. |
ISL |
The IIOP Listener/Handler. |
Files Generated in the corbaj Directory
Table 2-8 lists and describes the files that are generated in the corbaj work directory.
File |
Description |
---|---|
Simple.java |
Generated by the m3idltojava command for the Simple interface. This interface contains the Java version of the IDL interface. It extends the org.omg.CORBA.Object class. |
SimpleHelper.java |
Generated by the m3idltojava command for the Simple interface. This class provides auxiliary functionality, notably the narrow method. |
SimpleHolder.java |
Generated by the m3idltojava command for the Simple interface. This class holds a public instance member of type Simple. It provides operations for out and inout arguments, which CORBA has, but which do not map easily to Java's semantics. |
_SimpleImplBase.java |
Generated by the m3idltojava command for the Simple interface. This abstract class is the server skeleton. It implements the Simple.java interface. The server class SimpleImpl extends _SimpleImplBase. |
_SimpleStub.java |
Generated by the m3idltojava command for the Simple interface. This class is the client stub. It implements the Simple.java interface. |
SimpleFactory.java |
Generated by the m3idltojava command for the SimpleFactory interface. |
Simple.ser |
The server descriptor file that is generated by the buildjavaserver command. |
Simple.jar |
The Java ARchive (JAR) file that is generated by the buildjavaserver command. |
Files Generated in the ejb_corbaj Directory
Table 2-9 lists and describes the files generated in the ejb_corbaj directory.
File |
Description |
---|---|
results directory |
Generated by the runme comand. |
.adm/.keydb |
Generated by the tmloadcf command. Contains the security encryption key database. |
Files Generated in the results Directory
Table 2-10 lists and describes the files that are generated in the results directory, which is a subdirectory of the ejb_corbaj work directory.
File |
Description |
---|---|
input |
Generated by the runme command. Contains the input that runme gives to the SimpleClient Java application. |
output |
Generated by the runme command. Contains the output that is produced when runme executes the SimpleClient Java application. |
expected_output |
Generated by the runme command. Contains the output that is expected when the SimpleClient Java application is executed by the runme command. The data in the output file is compared with the data in the expected_output file to determine whether the test passed or failed. |
log |
Generated by the runme command. Contains the output generated by the runme command. If the runme command fails, check this file and the ULOG file for errors. |
setenv.cmd |
Generated by the Windows NT runme.cmd command. Contains the commands to set the environment variables needed to build and execute the EJB-to-CORBA/Java Simpapp sample application. |
setenv.ksh |
Generated by the UNIX runme.ksh command. Contains the commands to set the environment variables needed to build and execute the Simpapp sample. |
stderr |
Generated by the tmboot command, which is executed by the runme command. If the -noredirect server option is specified in the UBBCONFIG file, the System.err.println method sends the output to the stderr file instead of to the ULOG user log file. |
stdout |
Generated by the tmboot command, which is executed by the runme command. If the -noredirect server option is specified in the UBBCONFIG file, the System.out.println method sends the output to the stdout file instead of to the ULOG user log file. |
tmsysevt.dat |
Generated by the tmboot command, which is executed by the runme command. It contains filtering and notification rules used by the TMSYSEVT (system event reporting) process. |
tuxconfig |
Generated by the tmloadcf command, which is executed by the runme command. |
ubb |
The UBBCONFIG file for the EJB-to-CORBA/Java Simpapp sample application. |
ULOG.<date> |
A log file that contains messages generated by the tmboot command. If there are any compile or run-time errors, check this file. |
Stopping the EJB-to-CORBA/Java Simpapp Sample Application
Before using another sample application, use the following procedure to stop the EJB-to-CORBA/Java Simpapp sample application and to remove unnecessary files from the work directory.
Windows NT
prompt>tmshutdown -y
UNIX
ksh prompt>tmshutdown -y
Windows NT
prompt>nmake -f makefile.nt clean
UNIX
prompt>. ./results/setenv.ksh
prompt>make -f makefile.nt clean
prompt>results\setenv
prompt>set JDKDIR=%JAVA_HOME%
prompt>smake -f smakefile.nt
![]() |
![]() |
![]() |
|
Copyright © 2000 BEA Systems, Inc. All rights reserved.
|