private String getCallBackClassName(MessageContext messageContext){ AxisOperation axisOperation = messageContext.getAxisOperation(); MessageReceiver messageReceiver = axisOperation.getMessageReceiver(); String className = null; if (messageReceiver instanceof CallbackReceiver){ CallbackReceiver callbackReceiver = (CallbackReceiver) messageReceiver; AxisCallback axisCallback = (AxisCallback) callbackReceiver.getCallbackStore().get(messageContext.getMessageID()); if (axisCallback != null){ className = axisCallback.getClass().getName(); } } return className; }
public void loadRMDSequenceDetails(MessageContext messageContext) throws PersistenceException, AxisFault { // load the SequenceReceivedNumber details PersistenceManager persistenceManager = getPersistanceManager(); List sequenceReceivedNumbers = persistenceManager.getSequenceReceivedNumbersWithRMDSequenceID(this.persistanceDto.getId()); SequenceReceivedNumberDto sequenceReceivedNumberDto; for (Iterator iter = sequenceReceivedNumbers.iterator(); iter.hasNext();) { sequenceReceivedNumberDto = (SequenceReceivedNumberDto) iter.next(); this.receivedMessageNumbers.add(new Long(sequenceReceivedNumberDto.getNumber())); // remove any call back handlers MessageReceiver messageReceiver = messageContext.getAxisOperation().getMessageReceiver(); if (messageReceiver instanceof CallbackReceiver){ CallbackReceiver callbackReceiver = (CallbackReceiver) messageReceiver; callbackReceiver.getCallbackStore().remove(sequenceReceivedNumberDto.getRelatesToMessageID()); } } InvokerBufferDto invokerBufferDto = persistenceManager.getInvokerBufferWithRMDSequenceID(this.persistanceDto.getId()); this.invokerBuffer.setState(invokerBufferDto.getState()); this.invokerBuffer.setLastMessageNumber(invokerBufferDto.getLastMessage()); this.invokerBuffer.setLastMessageSendToApplication(invokerBufferDto.getLastMessageToApplication()); this.invokerBuffer.setPersistanceDto(invokerBufferDto); //load the invokerBuffer message details this.invokerBuffer.loadInvokerBufferDetails(messageContext); }