Получение имени подписи метода формирует SOAPMessage на JAX-WS - PullRequest
2 голосов
/ 07 марта 2011

Я использую JAX-WS для использования веб-служб SOAP и ищу простой способ найти метод, вызываемый через SOAP, который сгенерировал мое текущее сообщение SOAPMessage

Я полагаю, что одним из способов было бы проверить первый узел тела SOAP (это название вызываемого метода), но я не знаю, как проанализировать тело SOAP из этого сообщения SOAPMessage

На данный момент я могу вывести сообщение на консоль

заранее спасибо

Ответы [ 2 ]

4 голосов
/ 10 марта 2011

Я не уверен, что понимаю ваш вопрос, однако:

если вы обрабатываете мыльное сообщение как часть обработчика, вы можете получить службу и вызываемую операцию из SOAPMessageContext:

    QName svcn = (QName) context.get(MessageContext.WSDL_SERVICE);
    svcn.getLocalPart();
    QName opn = (QName) context.get(MessageContext.WSDL_OPERATION);
    opn.getLocalPart();

, если вы просто хотите иметь дело с SOAPMessage в своем клиентском коде и хотите узнать, какой элемент содержится в теле SOAP:

    msg.getSOAPBody().getFirstChild().getLocalName()

SOAPMessage представляет каждую часть envilope как объект DOM, так что вы можете делать с ним обычные вещи "DOM".

1 голос
/ 07 ноября 2016

Может быть, кому-то пригодится, это ответ на вопрос FrustratedWithFormsDesigner: в моем обработчике сообщений он выглядит NULL.

Пожалуйста, посмотрите этоЭто именно то объяснение, почему оно равно нулю:

http://blog.vinodsingh.com/2009/03/how-to-get-operation-name-in-jax-ws.html

...