Я пытаюсь написать перехватчик для веб-службы, который будет изменять содержимое сообщения Soap до его отправки в конечную точку. Если клиент отправил сообщение, где значение какого-либо элемента равно 1, я хочу иметь возможность изменить этот элемент на 2, чтобы при поступлении сообщения в конечную точку выглядело так, как если бы клиент отправил 2 вместо 1. Я не уверен, является ли это трудной задачей, которая окутывает меня, или легкой задачей, которую я делаю тяжелее, чем нужно.
Я прошел через некоторые перехватчики Весны; но перехватчики проверки и регистрации не каждый изменяют сообщение, которое находится в пути. Wss4jSecurityInterceptor добавляет некоторые свойства к MessageContext; но я не смог использовать все, что он делает. У меня есть оболочка перехватчика; но ничего, что не имеет ничего общего.
public boolean handleRequest(MessageContext messageContext, Object endpoint)
throws Exception {
SaajSoapMessage saajSoapMessage = (SaajSoapMessage) messageContext
.getRequest();
SOAPMessage soapMessage = saajSoapMessage.getSaajMessage();
SOAPBody soapBody = soapMessage.getSOAPBody();
return true;
}
Я надеялся, что есть шанс, что еще кто-то уже решил эту конкретную проблему. Любое понимание будет оценено. Спасибо.