本文整理汇总了Java中com.sun.corba.se.spi.protocol.CorbaMessageMediator类的典型用法代码示例。如果您正苦于以下问题:Java CorbaMessageMediator类的具体用法?Java CorbaMessageMediator怎么用?Java CorbaMessageMediator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CorbaMessageMediator类属于com.sun.corba.se.spi.protocol包,在下文中一共展示了CorbaMessageMediator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: invoke
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public CorbaMessageMediator invoke(java.lang.Object servant,
CorbaMessageMediator request,
byte[] objectId,
ObjectAdapter objectAdapter)
{
ORB orb = (ORB)request.getBroker() ;
ORBUtilSystemException wrapper = ORBUtilSystemException.get( orb,
CORBALogDomains.OA_INVOCATION ) ;
if ((servant == null) || (servant instanceof NullServant)) {
return request.getProtocolHandler().createSystemExceptionResponse(
request, wrapper.badSkeleton(), null);
} else {
return request.getProtocolHandler().createSystemExceptionResponse(
request, wrapper.getinterfaceNotImplemented(), null);
}
}
示例2: addExceptionDetailMessage
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
private void addExceptionDetailMessage(CorbaMessageMediator mediator,
SystemException ex,
ServiceContexts serviceContexts)
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(baos);
ex.printStackTrace(pw);
pw.flush(); // NOTE: you must flush or baos will be empty.
EncapsOutputStream encapsOutputStream =
sun.corba.OutputStreamFactory.newEncapsOutputStream((ORB)mediator.getBroker());
encapsOutputStream.putEndian();
encapsOutputStream.write_wstring(baos.toString());
UnknownServiceContext serviceContext =
new UnknownServiceContext(ExceptionDetailMessage.value,
encapsOutputStream.toByteArray());
serviceContexts.put(serviceContext);
}
示例3: createAppropriateOutputObject
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
private CDROutputObject createAppropriateOutputObject(
CorbaMessageMediator messageMediator,
Message msg, LocateReplyMessage reply)
{
CDROutputObject outputObject;
if (msg.getGIOPVersion().lessThan(GIOPVersion.V1_2)) {
// locate msgs 1.0 & 1.1 :=> grow,
outputObject = sun.corba.OutputStreamFactory.newCDROutputObject(
(ORB) messageMediator.getBroker(),
this,
GIOPVersion.V1_0,
(CorbaConnection) messageMediator.getConnection(),
reply,
ORBConstants.STREAM_FORMAT_VERSION_1);
} else {
// 1.2 :=> stream
outputObject = sun.corba.OutputStreamFactory.newCDROutputObject(
(ORB) messageMediator.getBroker(),
messageMediator,
reply,
ORBConstants.STREAM_FORMAT_VERSION_1);
}
return outputObject;
}
示例4: runInterceptors
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
protected void runInterceptors(CorbaMessageMediator messageMediator,
ReplyMessage reply)
{
if( messageMediator.executePIInResponseConstructor() ) {
// Invoke server request ending interception points (send_*):
// Note: this may end up with a SystemException or an internal
// Runtime ForwardRequest
((ORB)messageMediator.getBroker()).getPIHandler().
invokeServerPIEndingPoint( reply );
// Note this will be executed even if a ForwardRequest or
// SystemException is thrown by a Portable Interceptors ending
// point since we end up in this constructor again anyway.
((ORB)messageMediator.getBroker()).getPIHandler().
cleanupServerPIRequest();
// See createSystemExceptionResponse for why this is necesary.
messageMediator.setExecutePIInResponseConstructor(false);
}
}
示例5: createMessageMediator
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public MessageMediator createMessageMediator(Broker broker,
ContactInfo contactInfo,
Connection connection,
String methodName,
boolean isOneWay)
{
// REVISIT: Would like version, ior, requestid, etc., decisions
// to be in client subcontract. Cannot pass these to this
// factory method because it breaks generic abstraction.
// Maybe set methods on mediator called from subcontract
// after creation?
CorbaMessageMediator messageMediator =
new CorbaMessageMediatorImpl(
(ORB) broker,
contactInfo,
connection,
GIOPVersion.chooseRequestVersion( (ORB)broker,
effectiveTargetIOR),
effectiveTargetIOR,
((CorbaConnection)connection).getNextRequestId(),
getAddressingDisposition(),
methodName,
isOneWay);
return messageMediator;
}
示例6: 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;
}
示例7: createMessageMediator
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public MessageMediator createMessageMediator(Broker broker,
ContactInfo contactInfo,
Connection connection,
String methodName,
boolean isOneWay)
{
if (connection != null) {
/// XXX LOGGING
throw new RuntimeException("connection is not null");
}
CorbaMessageMediator messageMediator =
new CorbaMessageMediatorImpl(
(ORB) broker,
contactInfo,
null, // Connection;
GIOPVersion.chooseRequestVersion( (ORB)broker,
effectiveTargetIOR),
effectiveTargetIOR,
requestId++, // Fake RequestId
getAddressingDisposition(),
methodName,
isOneWay);
return messageMediator;
}
示例8: CDROutputObject
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public CDROutputObject(ORB orb,
MessageMediator messageMediator,
Message header,
byte streamFormatVersion)
{
this(
orb,
((CorbaMessageMediator)messageMediator).getGIOPVersion(),
header,
BufferManagerFactory.newBufferManagerWrite(
((CorbaMessageMediator)messageMediator).getGIOPVersion(),
header.getEncodingVersion(),
orb),
streamFormatVersion,
(CorbaMessageMediator)messageMediator);
}
示例9: initializeServerPIInfo
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public void initializeServerPIInfo( CorbaMessageMediator request,
ObjectAdapter oa, byte[] objectId, ObjectKeyTemplate oktemp )
{
if( !hasServerInterceptors ) return;
RequestInfoStack infoStack =
(RequestInfoStack)threadLocalServerRequestInfoStack.get();
ServerRequestInfoImpl info = new ServerRequestInfoImpl( orb );
infoStack.push( info );
printPush();
// Notify request object that once response is constructed, make
// sure we execute ending points.
request.setExecutePIInResponseConstructor( true );
info.setInfo( request, oa, objectId, oktemp );
}
示例10: newCDROutputObject
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public static CDROutputObject newCDROutputObject(
final ORB orb, final CorbaMessageMediator mediator,
final GIOPVersion giopVersion, final CorbaConnection connection,
final Message header, final byte streamFormatVersion) {
return AccessController.doPrivileged(
new PrivilegedAction<CDROutputObject>() {
@Override
public CDROutputObject run() {
return new CDROutputObject(orb, mediator,
giopVersion, connection, header, streamFormatVersion);
}
});
}
示例11: createInputObject
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public InputObject createInputObject(Broker broker,
MessageMediator messageMediator)
{
CorbaMessageMediator corbaMessageMediator = (CorbaMessageMediator)
messageMediator;
return new CDRInputObject((ORB)broker,
(CorbaConnection)messageMediator.getConnection(),
corbaMessageMediator.getDispatchBuffer(),
corbaMessageMediator.getDispatchHeader());
}
示例12: createInputObject
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public InputObject createInputObject(Broker broker,
MessageMediator messageMediator)
{
// REVISIT: Duplicate of acceptor code.
CorbaMessageMediator corbaMessageMediator = (CorbaMessageMediator)
messageMediator;
return new CDRInputObject((ORB)broker,
(CorbaConnection)messageMediator.getConnection(),
corbaMessageMediator.getDispatchBuffer(),
corbaMessageMediator.getDispatchHeader());
}
示例13: 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 ) ;
}
}
示例14: dispatch
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
public void dispatch(MessageMediator mediator)
{
CorbaMessageMediator request = (CorbaMessageMediator) mediator;
// send a locate forward with the right IOR. If the insKey is not
// registered then it will throw OBJECT_NOT_EXIST Exception
String insKey = new String( request.getObjectKey().getBytes(orb) );
request.getProtocolHandler()
.createLocationForward(request, getINSReference( insKey ), null);
return;
}
示例15: beginRequest
import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入依赖的package包/类
private void beginRequest(CorbaMessageMediator messageMediator)
{
ORB orb = (ORB) messageMediator.getBroker();
if (orb.subcontractDebugFlag) {
dprint(".handleRequest->:");
}
connection.serverRequestProcessingBegins();
}