веб-сервисы Spring - как получить полезную нагрузку строки в конечной точке метода? - PullRequest
2 голосов
/ 23 августа 2011

Как я могу получить входящую полезную нагрузку XML в качестве параметра String в методе spring ws endpoint? Например, У меня есть следующий код, обратите внимание, что я получаю XML как элемент JDOM, который мне теперь нужно преобразовать в строку вручную. Было бы неплохо узнать, как автоматически преобразовать это в строку.

@PayloadRoot(namespace=HOLIDAY_NAMESPACE_URI, localPart="holidayRequest")
@ResponsePayload
public Element handleHolidayRequest(@RequestPayload Element holidayRequest)
//public Element handleHolidayRequest(@XPathParam("holidayRequest") String holidayRequest)
{
    System.out.println("In handleHolidayRequest method with payload: " + holidayRequest);
    return getHolidayResponse(HOLIDAY_NAMESPACE);
}

Закомментированная сигнатура метода, только я пробовал XPath, который также не работал так, как я ожидал.

1 Ответ

1 голос
/ 26 сентября 2011

Я собирался сказать, что вы должны попытаться решить эту проблему, используя вместо этого аннотацию XPathParam, но я вижу, что вы уже попробовали это.Почему это не сработало для вас?

Я не уверен, нужно ли вам значение элемента в виде строки или вам нужен полный XML-код в виде строки.В последнем случае вы можете попробовать добавить MessageContext к подписи вашего метода и использовать его для получения PayLoadSource в виде строки, используя что-то вроде:

DOMSource source = (DOMSource) messageContext.getRequest().getPayloadSource();
...