JAX-WS - получить заголовки SOAP в веб-методе - PullRequest
2 голосов
/ 17 января 2011

Есть ли способ получить список всех заголовков SOAP в веб-методе с простым JAX-WS?Я знаю, что это можно сделать с помощью специальных классов Metro (HeaderList hl = messageContext.get(JAXWSProperties.INBOUND_HEADER_LIST_PROPERTY)).Однако я не уверен, могу ли я полагаться на эту реализацию во время выполнения, поэтому я хотел бы придерживаться JAX-WS.

Я также знаю об атрибуте header аннотации @WebParam.Я бы предпочел не указывать там параметр заголовка.Причина в том, что мой веб-сервис имеет некоторые идентификаторы, которые являются общими для всех веб-методов, и это может привести к загрязнению интерфейса.Также в случае, если появляется другой идентификатор или его снова удаляют (спецификация еще не окончательная), мне придется изменить каждый веб-метод.Также не было бы никакой причины для использования заголовка - это мог бы быть нормальный параметр метода.

Третий известный мне способ - использовать обработчик через @HandlerChain, но тогда у меня нет способа подключить заголовки.с выполненным веб-методом.Упомянутые мной идентификаторы важны для дальнейшей обработки - они не просто контроль доступа, который может работать независимо от метода.

1 Ответ

3 голосов
/ 17 января 2011

Если вы реализуете обработчик запросов, вы можете хранить заголовки в локальной, статической переменной потока и реализовывать какой-то механизм доступа к нему для реализации вашего метода обслуживания.

...