Instantiating pseudocomponents from Java

Java applications or EAServer Java components can instantiate pseudocomponents implemented in Java or C++. Java applets cannot instantiate pseudocomponents. In order to instantiate a C++ pseudocomponent, the environment for a Java application must include all the settings required by the EAServer C++ client runtime, and the location of the library must be specified in the system’s library search path. Java stub classes for the pseudocomponent must be available.

You can instantiate a pseudocomponent any time after initializing and instantiating an ORB instance. Call the ORB.string_to_object method, passing a URL formatted as described in “Pseudocomponent object URLs”. Narrow the returned object to an interface supported by the component. See Chapter 12, “Creating CORBA Java Clients” for more information on the ORB interface and narrowing objects to an interface.

Example: instantiating a C++ pseudocomponent

The following fragment instantiates a pseudocomponent proxy for a C++ component in the DLL CppPseudo.dll that is installed in the package Demo and has component name PseudoCpp. The returned object is narrowed to Arithmetic interface. On UNIX platforms, this syntax also works for a shared library with base name "CppPseudo", as in CppPseudo.so.

String url = "pseudo://cpp/CppPseudo/Demo/PseudoCPP";
org.omg.CORBA.Object obj = orb.string_to_object(url);
_comp = ArithmeticHelper.narrow(obj);

Example: instantiating a Java pseudocomponent

The following fragment instantiates a pseudocomponent proxy for a Java component. The implementation class and skeleton class are in the Java package Sample.PseudoComponents. The component is installed in the EAServer package Demo and has component name PseudoJava. The returned object is narrowed to Arithmetic interface.

String url =   "pseudo://java/Sample.PseudoComponents/Demo/PseudoJava";
org.omg.CORBA.Object obj = orb.string_to_object(url);
_comp = ArithmeticHelper.narrow(obj);