RemoteSerialContextProviderImplpublic class RemoteSerialContextProviderImpl extends SerialContextProviderImpl This class is the implementation of the Remote SerialContextProvider |
Fields Summary |
---|
public static final String | SERIAL_CONTEXT_PROVIDER_NAME |
Constructors Summary |
---|
private RemoteSerialContextProviderImpl(TransientContext rootContext)
super(rootContext);
PortableRemoteObject.exportObject(this);
|
Methods Summary |
---|
public static void | initSerialContextProvider(TransientContext rootContext)Create the remote object and publish it in the CosNaming name service.
try {
SerialContextProviderImpl impl =
new RemoteSerialContextProviderImpl(rootContext);
Tie servantsTie = javax.rmi.CORBA.Util.getTie(impl);
//servantsTie.orb(ORBManager.getORB());
//org.omg.CORBA.Object provider = servantsTie.thisObject());
// Create a CORBA objref for SerialContextProviderImpl using a POA
POA rootPOA = (POA)
ORBManager.getORB().resolve_initial_references("RootPOA");
Policy[] policy = new Policy[2];
policy[0] = rootPOA.create_implicit_activation_policy(
ImplicitActivationPolicyValue.IMPLICIT_ACTIVATION);
policy[1] = rootPOA.create_lifespan_policy(
LifespanPolicyValue.PERSISTENT);
POA poa = rootPOA.create_POA("SerialContextProviderPOA", null,
policy);
poa.the_POAManager().activate();
org.omg.CORBA.Object provider = poa.servant_to_reference(
(Servant)servantsTie);
// put object in NameService
org.omg.CORBA.Object objRef =
ORBManager.getORB().resolve_initial_references("NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);
NameComponent nc =
new NameComponent(SERIAL_CONTEXT_PROVIDER_NAME, "");
NameComponent path[] = {nc};
ncRef.rebind(path, provider);
} catch (Exception ex) {
_logger.log(Level.SEVERE,
"enterprise_naming.excep_in_insertserialcontextprovider",ex);
RemoteException re =
new RemoteException("initSerialCtxProvider error");
re.initCause(ex);
throw re;
}
| public java.lang.Object | lookup(java.lang.String name)
Object obj = super.lookup(name);
// If CORBA object, resolve here in server to prevent a
// another round-trip to CosNaming.
try {
if( obj instanceof Reference ) {
Reference ref = (Reference) obj;
if( ref.getFactoryClassName().equals
(NamingManagerImpl.IIOPOBJECT_FACTORY) ) {
Hashtable env = new Hashtable();
org.omg.CORBA.ORB orb = ORBManager.getORB();
env.put("java.naming.corba.orb", orb);
obj = javax.naming.spi.NamingManager.getObjectInstance
(obj, new CompositeName(name), null, env);
}
}
return obj;
} catch(RemoteException re) {
throw re;
} catch(Exception e) {
RemoteException re = new RemoteException("", e);
throw re;
}
|
|