Ich führe eine Validierung im benutzerdefinierten Handler durch und im Falle eines Fehlers kann die Antwort vom benutzerdefinierten Handler zurück an den Client gesendet werden. Die ursprüngliche Nutzlast der Client-Anfrage wird jedoch auch an den Client zurückgesendet. Wie Körper kann von Antwortnachricht geleert werden? Wenn ich SoapBody debugge, scheint es leer zu sein, aber irgendwie wird ursprüngliche Nutzlast zurück zum Klienten geschickt.So ersetzen Sie den Antworttextkörper in WSO2 ESB 4.8.1 Benutzerdefinierter Handler
Hier ist meine Funktion zum Senden von Nachrichten zurück zum Benutzer.
private void myAuthErrorHandler(MessageContext msgCtx)
{
Axis2MessageContext axis2smc = (Axis2MessageContext) msgCtx;
org.apache.axis2.context.MessageContext axis2MessageCtx = axis2smc.getAxis2MessageContext();
SOAPBody body = msgCtx.getEnvelope().getBody();
// remove the existing payload
for (Iterator itr = body.getChildElements(); itr.hasNext();) {
OMElement child = (OMElement) itr.next();
child.detach();
}
log.error(""+msgCtx.getEnvelope());
axis2MessageCtx.setProperty("HTTP_SC", "403");
axis2MessageCtx.setProperty("NO_ENTITY_BODY", new Boolean("true"));
axis2MessageCtx.setProperty("RESPONSE", "true");
axis2MessageCtx.setTo(null);
Axis2Sender.sendBack(msgCtx);
}
log.fehler ("" + msgCtx.getEnvelope()); scheint leer zu sein, aber der ursprüngliche Körper (Payload) wird zurück zum Client gesendet.
Ist dies möglicherweise ein Fehler oder warum Originalkörper zurück zum Client gesendet wird? Gibt es noch andere Methoden, um den Antworttext zu löschen?
Danke für jede Hilfe.
Für mich arbeitete die Skript Mediator Alternative in WSO2 ESB 4.8.1. – Chilcano