|
|
Using the Name Service Sample Application
This topic includes the following sections:
How the Name Service Sample Application Works
The Name Service sample application is a modification of the Simpapp sample application. The Name Service sample application uses a namespace to store the SimpleFactory object. The server application creates the SimpleFactory object and binds the object to the namespace. The client application connects to the namespace, resolves the name of the SimpleFactory object, and then invokes methods on the SimpleFactory. There are C++ and Java versions of the Name Service sample application. Figure 5-1 illustrates how the Name Service sample application works.
Figure 5-1 The Name Service Sample Application
The Name Service sample application implements the CORBA interfaces listed in Table 5-1:
Interface |
Description |
Operation |
---|---|---|
SimpleFactory |
Creates object references to the Simple object |
find_simple() |
Simple |
Converts the case of a string |
to_upper() to_lower() |
Listing 5-1 shows the simple.idl file that defines the CORBA interfaces in the Name Service sample application.
Listing 5-1 OMG IDL Code for the Name Service 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 Name Service Sample Application
To build and run the Name Service sample application, complete the following steps:
Step 1: Copy the Files for the Name Service Sample Application into a Work Directory
You need to copy the files for the Name Service sample application into a work directory on your local machine. The following sections detail the directory location and sources files for the C++ and Java versions of the Name Service sample application.
C++ Version of the Name Service Sample Application
The files for the C++ version of the Name Service sample application are located in the following directories:
Windows NT
drive:\WLEdir\samples\corba\cnssimpapp
UNIX
/usr/local/WLedir/samples/corba/cnssimpapp
You will use the files listed in Table 5-2 to build and run the C++ version of the Name Service sample application.
File |
Description |
---|---|
Simple.idl |
The OMG IDL code that declares the Simple and SimpleFactory interface. |
Simples.cpp |
The C++ source code for the server application in the Name Service sample application. |
Simplec.cpp |
The C++ source code for the client application in the Name Service sample application. |
Simple_i.cpp |
The C++ source code that implements the Simple and SimpleFactory methods. |
Simple_i.h |
The C++ header file that defines the implementation of the Simple and SimpleFactory methods. |
Readme.txt |
This file provides the latest information about building and running the C++ version of the Name Service sample application. |
runme.cmd |
The Windows NT batch file that builds and runs the C++ version of the Name Service sample application. |
runme.ksh |
The UNIX Korn shell script that builds and executes the C++ version of the Name Service sample application. |
makefile.mk |
The makefile for the C++ version of the Name Service sample application on the UNIX operating system. This file is used to manually build the C++ version of the Name Service sample application. Refer to the Readme.txt file for information about manually building the C++ version of the Name Service sample application. The UNIX make command needs to be in the path of your machine. |
makefile.nt |
The makefile for the C++ version of the Name Service sample application on the Windows NT operating system. This makefile can be used directly by the Visual C++ nmake command. This file is used to manually build the C++ version of the Name Service sample application. Refer to the Readme.txt file for information about manually building the C++ version of the Name Service sample application. The Windows NT nmake command needs to be in the path of your machine. |
Java Version of the Name Service Sample Application
The files for the Java version of the Name Service sample application are located in the following directories:
Windows NT
drive:\WLEdir\samples\corba\cnssimpapp_java
UNIX
/usr/local/WLedir/samples/corba/cnssimpapp_java
You will use the files listed in Table 5-3 to build and run the Java Name Service sample application.
File |
Description |
---|---|
Simple.idl |
The OMG IDL code that declares the Simple and SimpleFactory interfaces. |
ServerImpl.java |
The Java source code that overrides the Server.initialize and Server.release methods. |
SimpleClient.java |
The Java source code for the client application in the Name Service sample application. |
SimpleFactoryImpl.java |
The Java source code that implements the SimpleFactory methods. |
SimpleImpl.java |
The Java source code that implements the Simple methods. |
Simple.xml |
The Server Description File used to associate activation and transaction policy values with CORBA interfaces. For the Java version of the Name Service sample application, the Simple and SimpleFactory interfaces have an activation policy of method and a transaction policy of optional. |
Readme.txt |
The file that provides the latest information about building and running the Java version of the Name Service sample application. |
runme.cmd |
The Windows NT batch file that builds and runs the Java version of the Name Service sample application. |
runme.ksh |
The UNIX Korn shell script that builds and executes the Java version of the Name Service sample application. |
makefile.mk |
The makefile for the Java version of the Name Service sample application on the UNIX operating system. This file is used to manually build the Name Service sample application. Refer to the Readme.txt file for information about manually building the Name Service sample application. The UNIX make command needs to be in the path of your machine. |
makefiles.nt |
The makefile for the Name Service sample application on the Windows NT operating system. This file is used to manually build the Java version of the Name Service sample application. Refer to the Readme.txt file for information about manually building the Name Service sample application. The Windows NT nmake command needs to be in the path of your machine. |
Step 2: Change the Protection Attribute on the Files for the Name Service Sample Application
During the installation of the WLE software, the sample application files are marked read-only. Before you can edit or build the files in the Name Service sample application, you need to change the protection attribute of the files you copied into your work directory, as follows:
Windows NT
prompt>attrib -r drive:\workdirectory\*.*
UNIX
prompt>/bin/ksh
ksh prompt>chmod u+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
Step 3: Verify the Settings of the Environment Variables
Before building and running the Name Service 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 5-4 lists the environment variables required to run the Name Service sample application.
Environment Variable |
Description |
---|---|
APPDIR |
The directory path where you copied the sample application files. For example: Windows NT APPDIR=c:\work\cnssimpapp UNIX APPDIR=/usr/work/cnssimpapp |
TUXCONFIG |
The directory path and name of the configuration file. For example: Windows NT TUXCONFIG=c:\work\cnssimpapp\tuxconfig UNIX TUXCONFIG=/usr/work/cnssimpapp/tuxconfig |
JDKDIR |
The directory path where you installed the JDK software. For example: Windows NT JDKDIR=c:\jdk1.2.2 UNIX JDKDIR=/usr/local/jdk1.2.1 You need to specify this parameter only if you plan to use the Java version of the Name Service sample application. |
JAVA_HOME |
The directory path where you installed the JDK software. For example: Windows NT JAVA_HOME=c:\JDK1.2 UNIX JAVA_HOME=/usr/local/JDK1.2 You need to define this environment variable only when you use the Java version of the Name Service sample application. |
RESULTSDIR or |
A subdirectory of APPDIR where files that are created as a result of executing the runme command are stored. For example: Windows NT RESULTSDIR=c:\workdirectory\ UNIX RESULTSDIR=/usr/local/workdirectory/ When using the Java version of the Name Service sample application, specify the JRESULTSDIR environment variable. |
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
To change the settings, complete the following steps:
Windows NT
UNIX
ksh prompt>export TUXDIR=directorypath
ksh prompt>export JAVA_HOME=directorypath
Step 4: Execute the runme Command
The runme command automates the following steps:
Note: You can also run the Name Service sample application manually. The steps for manually running the Name Service sample application are described in the Readme.txt file.
To build and run the Name Service 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 Name Service sample application runs and prints the following messages:
Testing simpapp
cleaned up
prepared
built
loaded ubb
booted
ran
shutdown
saved results
PASSED
Table 5-5 lists the C++ files in the work directory generated by the runme command.
File |
Description |
---|---|
Simple_c.cpp |
Generated by the idl command, this file contains the client stubs for the SimpleFactory and Simple interfaces. |
Simple_c.h |
Generated by the idl command, this file contains the client definitions of the SimpleFactory and Simple interfaces. |
Simple_s.cpp |
Generated by the idl command, this file contains the server skeletons for the SimpleFactory and Simple interfaces. |
Simple_s.h |
Generated by the idl command, this file contains the server definition for the SimpleFactory and Simple interfaces. |
.adm/.keybd |
A file that contains the security encryption key database. The subdirectory is created by the tmloadcf command in the runme command. |
results |
A directory generated by the runme command. |
Table 5-6 lists the Java files in the work directory generated by the runme command.
File |
Description |
---|---|
SimpleFactory.java |
Generated by the m3idltojava command for the SimpleFactory interface. The SimpleFactory interface contains the Java version of the OMG IDL interface. It extends org.omg.CORBA.Object. |
SimpleFactoryHolder.java |
Generated by the m3idltojava command for the SimpleFactory interface. This class holds a public instance member of type SimpleFactory. The class provides operations for out and inout arguments that are included in CORBA, but that do not map exactly to Java. |
SimpleFactoryHelper.java |
Generated by the m3idltojava command for the SimpleFactory interface. This class provides auxiliary functionality, notably the narrow method. |
_SimpleFactoryStub.java |
Generated by the m3idltojava command for the SimpleFactory interface. This class is the client stub that implements the SimpleFactory.java interface. |
_SimpleFactoryImplBase.java |
Generated by the m3idltojava command for the SimpleFactory interface. This abstract class is the server skeleton. It implements the SimpleFactory.java interface. The user-written server class SimpleFactoryImpl extends _SimpleFactoryImplBase. |
Simple.java |
Generated by the m3idltojava command for the Simple interface. The Simple interface contains the Java version of the OMG IDL interface. It extends org.omg.CORBA.Object. |
SimpleHolder.java |
Generated by the m3idltojava command for the Simple interface.This class holds a public instance member of type Simple. The class provides operations for out and inout arguments that CORBA has but that do not match exactly to Java. |
SimpleHelper.java |
Generated by the m3idltojava command for the Simple interface. This class provides auxiliary functionality, notably the narrow method. |
_SimpleStub.java |
Generated by the m3idltojava command for the Simple interface. This class is the client stub that implements the Simple.java interface. |
_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 user-written server class SimpleImpl extends _SimpleImplBase. |
Simple.ser |
The Server Descriptor File generated by the buildjobjserver command in the runme command. |
Simple.jar |
The server Java Archive file generated by the buildjavaserver command in the runme command. |
.adm/.keybd |
A file that contains the security encryption key database. The subdirectory is created by the tmloadcf command in the runme command. |
results |
A directory generated by the runme command. |
Table 5-7 lists files in the RESULTS or JRESULTS directory generated by the runme command.
File |
Description |
---|---|
input |
Contains the input that the runme command provides to the Java client application. |
output |
Contains the output produced when the runme command executes the Java client application. |
expected_output |
Contains the output that is expected when the Java client application is executed by the runme command. The data in the output file is compared to the data in the expected_output file to determine whether or not the test passed or failed. |
log |
Contains the output generated by the runme command. If the runme command fails, check this file for errors. |
setenv.cmd |
Contains the commands to set the environment variables needed to build and run the Java Name Service sample application on the Windows NT operating system platform. |
setenv.ksh |
Contains the commands to set the environment variables needed to build and run the Java Name Service sample application on the UNIX operating system platform. |
stderr |
Generated by the tmboot command, which is executed by the runme command. If the -noredirect JavaServer option is specified in the UBBCONFIG file, the System.err.println method sends the output to the stderr file instead of to the ULOG file. |
stdout |
Generated by the tmboot command, which is executed by the runme command. If the -noredirect JavaServer option is specified in the UBBCONFIG file, the System.out.println method sends the output to the stdout file instead of to the ULOG file. |
tmsysevt.dat |
Contains filtering and notification rules used by the TMSYSEVT (system event reporting) process. This file is generated by the tmboot command in the runme command. |
tuxconfig |
A binary version of the UBBCONFIG file. |
ubb |
The UBBCONFIG file for the Java Name Service sample application. |
ULOG.<date> |
A log file that contains messages generated by the tmboot command. |
Using the Name Service Sample Application
Run the server application in the Name Service sample application, as follows:
Windows NT
prompt>tmboot
UNIX
ksh prompt>tmboot
Run the client application in the Name Service sample application, as follows:
Windows NT
prompt>java -classpath %CLIENTCLASSPATH%
-DTOBJADDR=%TOBJADDR% SimpleClient
String?
Hello World
HELLO WORLD
hello world
UNIX
ksh prompt>java -classpath $CLIENTCLASSPATH
/m3envobj.jar -DTOBJADDR=$TOBJADDR SimpleClient
String?
Hello World
HELLO WORLD
hello world
Before using another sample application, enter the following commands to stop the Name Service sample application and to remove unnecessary files from the work directory:
Windows NT
prompt>tmshutdown -y
prompt>nmake -f makefile.nt clean
UNIX
ksh prompt>tmshutdown -y
ksh prompt>make -f makefile.mk clean
|
Copyright © 2000 BEA Systems, Inc. All rights reserved.
|