use of javax.rmi.CORBA.Tie in project Payara by payara.
the class POAProtocolMgr method validateTargetObjectInterfaces.
@Override
public void validateTargetObjectInterfaces(Remote targetObj) {
if (targetObj != null) {
// All Remote interfaces implemented by targetObj will be
// validated as a side-effect of calling setTarget().
// A runtime exception will be propagated if validation fails.
Tie tie = presentationMgr.getTie();
tie.setTarget(targetObj);
} else {
throw new IllegalArgumentException("null passed to validateTargetObjectInterfaces");
}
}
use of javax.rmi.CORBA.Tie in project Payara by payara.
the class RemoteObject method exportObject.
protected void exportObject(java.rmi.Remote remote) throws java.rmi.RemoteException {
// create servant and tie
PortableRemoteObject.exportObject(remote);
Tie servantsTie = javax.rmi.CORBA.Util.getTie(remote);
// Note: at this point the Tie doesnt have a delegate inside it,
// so it is not really "exported".
// The following call does orb.connect() which is the real exporting
servantsTie.orb(orb);
}
use of javax.rmi.CORBA.Tie in project tomee by apache.
the class Corbas method toStub.
public static Object toStub(final Object obj) throws IOException {
final Tie tie = javax.rmi.CORBA.Util.getTie((Remote) obj);
if (tie == null) {
throw new IOException("Unable to serialize PortableRemoteObject; object has not been exported: " + obj);
}
final ORB orb = getORB();
tie.orb(orb);
return PortableRemoteObject.toStub((Remote) obj);
}
use of javax.rmi.CORBA.Tie in project Payara by payara.
the class POARemoteReferenceFactory method preinvoke.
/**
* This is the implementation of ServantLocator.preinvoke()
* It is called from the POA before every remote invocation.
* Return a POA Servant (which is the RMI/IIOP Tie for EJBObject/EJBHome).
* @param ejbKey
* @param cookieHolder
*/
@Override
public Servant preinvoke(byte[] ejbKey, POA adapter, String operation, CookieHolder cookieHolder) throws org.omg.PortableServer.ForwardRequest {
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.FINE, "In preinvoke for operation:{0}", operation);
}
// get instance key
int keyLen = Utility.bytesToInt(ejbKey, INSTANCEKEYLEN_OFFSET);
byte[] instanceKey = new byte[keyLen];
System.arraycopy(ejbKey, INSTANCEKEY_OFFSET, instanceKey, 0, keyLen);
Servant servant = null;
try {
while (servant == null) {
// get the EJBObject / EJBHome
Remote targetObj = container.getTargetObject(instanceKey, (isRemoteHomeView ? null : remoteBusinessIntf));
// the looping logic the same as it has always been.
if (targetObj != null) {
// get the Tie which is the POA Servant
// fix for bug 6484935
@SuppressWarnings("unchecked") Tie tie = (Tie) AccessController.doPrivileged(new PrivilegedAction() {
@Override
public Tie run() {
return presentationMgr.getTie();
}
});
tie.setTarget(targetObj);
servant = (Servant) tie;
}
}
} catch (NoSuchObjectLocalException e) {
logger.log(Level.SEVERE, "iiop.gettie_exception", e);
throw new OBJECT_NOT_EXIST(GET_TIE_EXCEPTION_CODE, CompletionStatus.COMPLETED_NO);
} catch (RuntimeException e) {
logger.log(Level.SEVERE, "iiop.runtime_exception", e);
throw e;
}
return servant;
}
use of javax.rmi.CORBA.Tie in project Payara by payara.
the class RemoteObject method exportObject.
protected void exportObject(Remote remote) throws RemoteException {
// create servant and tie
PortableRemoteObject.exportObject(remote);
Tie servantsTie = javax.rmi.CORBA.Util.getTie(remote);
// Note: at this point the Tie doesnt have a delegate inside it,
// so it is not really "exported".
// The following call does orb.connect() which is the real exporting
servantsTie.orb(orb);
}
Aggregations