Это, вероятно, только половина ответа, который вам нужен, но я думаю, что вы можете прочитать мыльные заголовки, получив (Saaj) SoapMessage из messagecontext, например:
@PayloadRoot(
localPart = "GetHiredCandidatesRequest",
namespace = DEFAULT_NAMESPACE
)
@ResponsePayload
public GetHiredCandidatesResponse getKandidaat (
@RequestPayload GetHiredCandidatesRequest getCandidate,
MessageContext messageContext) {
SaajSoapMessage request = (SaajSoapMessage) messageContext.getRequest();
SoapHeader header = request.getSoapHeader();
GetHiredCandidatesResponse response = objectFactory.createGetHiredCandidatesResponse();
response.getCandidate().addAll(
candidateService.getHiredCandidates(
getCandidate.getFrom(),
getCandidate.getTo()
)
);
return response;
}
Начиная с версии 2, вы можете автоматически «добавлять» некоторые объекты в сигнатуру вашего метода, как я добавляю MessageContext
здесь. Я использовал это, чтобы получить вложения из мыльного сообщения, например. Возможно, вы также можете использовать другие подклассы AbstractSoapMessage
, так как метод getSoapHeder
находится в этом классе.
[править]
КСТАТИ: Возможно, вы также можете использовать перехватчики, поскольку там есть запрос / ответ. Взгляните на пакет org.springframework.ws.soap.server.endpoint.interceptor для некоторых примеров по умолчанию.
[/ Править]