}
public void onMessage(Message inMessage)
{
Message outMessage = null;
RqstEnvelope rqstEnvelope = null;
try
{
rqstEnvelope = envelopeMarshaller.unmarshallRqst(inMessage);
before(inMessage,rqstEnvelope);
// TBC: use appName to dispatch to adequate xmldispatcher?
// dispatch request - use same mechanism as in
// XDHttpFormServletBase (abstract getXMLDispatcherClient method)
xd.setSessionData(rqstEnvelope.getSessionData());
String xmlRply;
switch (rqstEnvelope.getVerb())
{
case EnvelopeConstants.verbDispatchClassMethodXML:
xmlRply = xd.dispatchClassMethodXML(rqstEnvelope.getClassName(),
rqstEnvelope.getMethodName(),
rqstEnvelope.getXmlRqst());
break;
case EnvelopeConstants.verbDispatchNewInstanceMethodXML:
xmlRply = xd.dispatchNewInstanceMethodXML(rqstEnvelope.getClassName(),
rqstEnvelope.getMethodName(),
rqstEnvelope.getXmlRqst());
break;
case EnvelopeConstants.verbDispatchInstanceMethodXML:
xmlRply = xd.dispatchInstanceMethodXML(rqstEnvelope.getClassName(),
rqstEnvelope.getMethodName(),
rqstEnvelope.getInstanceId(),
rqstEnvelope.getXmlRqst());
break;
default:
throw new XMLDispatcherSystemException("Invalid verb: " + rqstEnvelope.getVerb());
}
// prepare rply
try
{
RplyEnvelopeOk rplyEnvelopeOk = new RplyEnvelopeOk(xmlRply,