本文整理汇总了Java中com.sun.corba.se.spi.protocol.CorbaMessageMediator.getConnection方法的典型用法代码示例。如果您正苦于以下问题:Java CorbaMessageMediator.getConnection方法的具体用法?Java CorbaMessageMediator.getConnection怎么用?Java CorbaMessageMediator.getConnection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.corba.se.spi.protocol.CorbaMessageMediator
的用法示例。
在下文中一共展示了CorbaMessageMediator.getConnection方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: CDROutputObject
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
private CDROutputObject(
ORB orb, GIOPVersion giopVersion, Message header,
BufferManagerWrite manager, byte streamFormatVersion,
CorbaMessageMediator mediator)
{
super(orb, giopVersion, header.getEncodingVersion(),
false, manager, streamFormatVersion,
((mediator != null && mediator.getConnection() != null) ?
((CorbaConnection)mediator.getConnection()).
shouldUseDirectByteBuffers() : false));
this.header = header;
this.orb = orb;
this.wrapper = ORBUtilSystemException.get( orb, CORBALogDomains.RPC_ENCODING ) ;
this.omgWrapper = OMGSystemException.get( orb, CORBALogDomains.RPC_ENCODING ) ;
getBufferManager().setOutputObject(this);
this.corbaMessageMediator = mediator;
}
示例2: addServiceContexts
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
protected void addServiceContexts(CorbaMessageMediator messageMediator)
{
ORB orb = (ORB)messageMediator.getBroker();
CorbaConnection c = (CorbaConnection) messageMediator.getConnection();
GIOPVersion giopVersion = messageMediator.getGIOPVersion();
ServiceContexts contexts = messageMediator.getRequestServiceContexts();
addCodeSetServiceContext(c, contexts, giopVersion);
// Add the RMI-IIOP max stream format version
// service context to every request. Once we have GIOP 1.3,
// we could skip it since we now support version 2, but
// probably safer to always send it.
contexts.put(MaxStreamFormatVersionServiceContext.singleton);
// ORBVersion servicecontext needs to be sent
ORBVersionServiceContext ovsc = new ORBVersionServiceContext(
ORBVersionFactory.getORBVersion() ) ;
contexts.put( ovsc ) ;
// NOTE : We only want to send the runtime context the first time
if ((c != null) && !c.isPostInitialContexts()) {
// Do not do c.setPostInitialContexts() here.
// If a client interceptor send_request does a ForwardRequest
// which ends up using the same connection then the service
// context would not be sent.
SendingContextServiceContext scsc =
new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638
contexts.put( scsc ) ;
}
}
示例3: setInfo
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
/**
* Stores the various sources of information used for this info object.
*/
protected void setInfo( CorbaMessageMediator request, ObjectAdapter oa,
byte[] objectId, ObjectKeyTemplate oktemp )
{
this.request = request;
this.objectId = objectId;
this.oktemp = oktemp;
this.objectAdapter = oa ;
this.connection = (com.sun.corba.se.spi.legacy.connection.Connection)
request.getConnection();
}
示例4: registerWaiter
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
protected void registerWaiter(CorbaMessageMediator messageMediator)
{
if (messageMediator.getConnection() != null) {
messageMediator.getConnection().registerWaiter(messageMediator);
}
}
示例5: consumeServiceContexts
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
protected void consumeServiceContexts(ORB orb,
CorbaMessageMediator messageMediator)
{
ServiceContexts ctxts = messageMediator.getReplyServiceContexts();
ServiceContext sc ;
ORBUtilSystemException wrapper = ORBUtilSystemException.get( orb,
CORBALogDomains.RPC_PROTOCOL ) ;
if (ctxts == null) {
return; // no service context available, return gracefully.
}
sc = ctxts.get( SendingContextServiceContext.SERVICE_CONTEXT_ID ) ;
if (sc != null) {
SendingContextServiceContext scsc =
(SendingContextServiceContext)sc ;
IOR ior = scsc.getIOR() ;
try {
// set the codebase returned by the server
if (messageMediator.getConnection() != null) {
((CorbaConnection)messageMediator.getConnection()).setCodeBaseIOR(ior);
}
} catch (ThreadDeath td) {
throw td ;
} catch (Throwable t) {
throw wrapper.badStringifiedIor( t ) ;
}
}
// see if the version subcontract is present, if yes, then set
// the ORBversion
sc = ctxts.get( ORBVersionServiceContext.SERVICE_CONTEXT_ID ) ;
if (sc != null) {
ORBVersionServiceContext ovsc =
(ORBVersionServiceContext) sc;
ORBVersion version = ovsc.getVersion();
orb.setORBVersion( version ) ;
}
getExceptionDetailMessage(messageMediator, wrapper);
}
示例6: performCodeSetNegotiation
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator)
{
CorbaConnection conn =
(CorbaConnection) messageMediator.getConnection();
IOR ior =
((CorbaContactInfo)messageMediator.getContactInfo())
.getEffectiveTargetIOR();
GIOPVersion giopVersion = messageMediator.getGIOPVersion();
// XXX This seems to be a broken double checked locking idiom: FIX IT!
// conn.getCodeSetContext() is null when no other requests have
// been made on this connection to trigger code set negotation.
if (conn != null &&
conn.getCodeSetContext() == null &&
!giopVersion.equals(GIOPVersion.V1_0)) {
synchronized(conn) {
// Double checking. Don't let any other
// threads use this connection until the
// code sets are straight.
if (conn.getCodeSetContext() != null)
return;
// This only looks at the first code set component. If
// there can be multiple locations with multiple code sets,
// this requires more work.
IIOPProfileTemplate temp =
(IIOPProfileTemplate)ior.getProfile().
getTaggedProfileTemplate();
Iterator iter = temp.iteratorById(TAG_CODE_SETS.value);
if (!iter.hasNext()) {
// Didn't have a code set component. The default will
// be to use ISO8859-1 for char data and throw an
// exception if wchar data is used.
return;
}
// Get the native and conversion code sets the
// server specified in its IOR
CodeSetComponentInfo serverCodeSets
= ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo();
// Perform the negotiation between this ORB's code sets and
// the ones from the IOR
CodeSetComponentInfo.CodeSetContext result
= CodeSetConversion.impl().negotiate(
conn.getBroker().getORBData().getCodeSetComponentInfo(),
serverCodeSets);
conn.setCodeSetContext(result);
}
}
}
示例7: createSystemExceptionResponse
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
public CorbaMessageMediator createSystemExceptionResponse(
CorbaMessageMediator messageMediator,
SystemException ex,
ServiceContexts svc)
{
if (messageMediator.getConnection() != null) {
// It is possible that fragments of response have already been
// sent. Then an error may occur (e.g. marshaling error like
// non serializable object). In that case it is too late
// to send the exception. We just return the existing fragmented
// stream here. This will cause an incomplete last fragment
// to be sent. Then the other side will get a marshaling error
// when attempting to unmarshal.
// REVISIT: Impl - make interface method to do the following.
CorbaMessageMediatorImpl mediator = (CorbaMessageMediatorImpl)
((CorbaConnection)messageMediator.getConnection())
.serverRequestMapGet(messageMediator.getRequestId());
OutputObject existingOutputObject = null;
if (mediator != null) {
existingOutputObject = mediator.getOutputObject();
}
// REVISIT: need to think about messageMediator containing correct
// pointer to output object.
if (existingOutputObject != null &&
mediator.sentFragment() &&
! mediator.sentFullMessage())
{
return mediator;
}
}
// Only do this if interceptors have been initialized on this request
// and have not completed their lifecycle (otherwise the info stack
// may be empty or have a different request's entry on top).
if (messageMediator.executePIInResponseConstructor()) {
// REVISIT: not necessary in framework now?
// Inform Portable Interceptors of the SystemException. This is
// required to be done here because the ending interception point
// is called in the when creating the response below
// but we do not currently write the SystemException into the
// response until after the ending point is called.
((ORB)messageMediator.getBroker()).getPIHandler().setServerPIInfo( ex );
}
if (((ORB)messageMediator.getBroker()).subcontractDebugFlag &&
ex != null)
{
dprint(".createSystemExceptionResponse: "
+ opAndId(messageMediator),
ex);
}
ServiceContexts serviceContexts =
getServiceContextsForReply(messageMediator, svc);
// NOTE: We MUST add the service context before creating
// the response since service contexts are written to the
// stream when the response object is created.
addExceptionDetailMessage(messageMediator, ex, serviceContexts);
CorbaMessageMediator response =
createResponseHelper(messageMediator, serviceContexts, false);
// NOTE: From here on, it is too late to add more service contexts.
// They have already been serialized to the stream (and maybe fragments
// sent).
ORBUtility.writeSystemException(
ex, (OutputStream)response.getOutputObject());
return response;
}
示例8: createResponseHelper
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
protected CorbaMessageMediator createResponseHelper(
CorbaMessageMediator messageMediator, ReplyMessage reply, IOR ior)
{
// REVISIT - these should be invoked from subcontract.
runServantPostInvoke(messageMediator);
runInterceptors(messageMediator, reply);
runRemoveThreadInfo(messageMediator);
if (((ORB)messageMediator.getBroker()).subcontractDebugFlag) {
dprint(".createResponseHelper: "
+ opAndId(messageMediator) + ": "
+ reply);
}
messageMediator.setReplyHeader(reply);
OutputObject replyOutputObject;
// REVISIT = do not use null.
//
if (messageMediator.getConnection() == null) {
replyOutputObject =
sun.corba.OutputStreamFactory.newCDROutputObject(orb,
messageMediator, messageMediator.getReplyHeader(),
messageMediator.getStreamFormatVersion(),
BufferManagerFactory.GROW);
} else {
replyOutputObject = messageMediator.getConnection().getAcceptor()
.createOutputObject(messageMediator.getBroker(), messageMediator);
}
messageMediator.setOutputObject(replyOutputObject);
messageMediator.getOutputObject().setMessageMediator(messageMediator);
reply.write((OutputStream) messageMediator.getOutputObject());
if (reply.getIOR() != null) {
reply.getIOR().write((OutputStream) messageMediator.getOutputObject());
}
// REVISIT - not necessary?
//messageMediator.this.replyIOR = reply.getIOR();
// NOTE: The mediator holds onto output object so return value
// not really necessary.
return messageMediator;
}