Метод getHeaders из интерфейса SoapHandler
Не могли бы вы объяснить, что именно должен делать метод getHeaders из интерфейса SOAPHandler?
http://docs.oracle.com/javaee/5/api/javax/xml/ws/handler/soap/SOAPHandler.html
Я не уверен, создает ли он дополнительные заголовки или просто сообщает среде выполнения, какие заголовки должны быть в сообщении.
Я просматривал Интернет в поисках подробной информации, но я не смог ее найти. Я думаю, что это настолько просто и очевидно, что никакой документации не требуется LOL:-)
Спасибо
2 ответа
Описание, которое вы ищете, можно найти в спецификации JAX-WS 2.2 в разделе "10.2.1 SOAP mustUnderstand Processing". Входящие сообщения требуют дополнительного шага обработки, который происходит перед началом обычной обработки обработчика. В основном, набор QName
экземпляры вернулись из getHeaders
позволяет обработчику вносить вклад в полный набор заголовков SOAP, которые понимает узел (другие участники полного набора задокументированы в спецификации). Если входящий заголовок SOAP содержит mustUnderstand
атрибут со значением 1
или же true
, тогда будет сгенерировано исключение, если этот заголовок не может быть помечен как понятый.
РЕДАКТИРОВАТЬ: Очевидно, я был неправ, и после прочтения я должен согласиться, поэтому, пожалуйста, игнорируйте это.
SOAP-сообщение - это HTTP-запрос. HTTP-запросы могут содержать несколько разных заголовков в составе сообщения (например, в SOAP 1.1 был заголовок SOAPAction, который мог содержать имя службы и операции). Функция getHeaders возвращает список всех заголовков QNames, которые пришли с запросом, поэтому в случае предыдущего примера вы получите список, который будет содержать элемент со значением "SOAPAction".