1.Я не использовал jws и не пробовал это, но это может помочь:
Попробуйте добавить опцию header
к вашей аннотации @WebResult
.
См. https://docs.oracle.com/javaee/6/api/javax/jws/WebResult.html:
public abstract boolean header
"Если true, результат извлекается из заголовка сообщения, а не из тела сообщения."
Но похоже, что вДля этого вы должны написать соответствующий класс для JAXB (я не уверен).
2.Вместо этого я сделал это прямо и использовал этот метод:
Ваши бизнес-данные расположены внутри тела сообщения - между <getEmployeePacketInfoRequest2/>
тегами.Это то, из чего JAXB создает ваши объекты класса GetEmployeePacketInfoResponse
.Итак, если вы хотите получить что-либо вне этих тегов, вы должны получить это из всего ответа SOAP.Но вам не нужно анализировать его вручную - javax.xml.soap.SOAPMessage имеет встроенный метод getSOAPHeader()
, который делает то, что вам нужно.Затем просто преобразуйте его в DOM и выполните getElementsByTagName()
или getElementsByTagNameNS()
.