Я написал следующий код для сообщения SOAP SOAP с использованием STAX. Я получаю исключение нулевого указателя в xmlStreamReader.hasNext(). Пожалуйста помоги.Прослушать SOAP-сообщение с использованием STAX
Source src = soapMsg.getSOAPPart().getContent();
...
HorizonHeaderData header = parser.parseHorizonHeader(src);
...
public HorizonHeaderData parseHorizonHeader(Source src) {
HorizonHeaderData header = new HorizonHeaderData();
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
if (null != src) {
try {
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(src);
if(xmlStreamReader==null){
System.out.println("xmlStreamReader is null");
}
while(xmlStreamReader.hasNext()){
int event = xmlStreamReader.getEventType();
switch(event){
case XMLStreamConstants.START_ELEMENT:
System.out.println("Element: "+ xmlStreamReader.getLocalName() + "\nValue: "+ xmlStreamReader.getElementText());
}
xmlStreamReader.next();
Входной XML является
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bpel="http://xmlns.oracle.com/TestLoggingComposite/SSNService/BPELProcess2">
<soapenv:Header>
<oas:Security soapenv:mustUnderstand="0" xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:soap="soap" xmlns:xsi="xsi">
<wsu:SecurityContextToken xmlns:wsu="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512">
<wsu:Identifier>${=java.util.UUID.randomUUID()}</wsu:Identifier>
</wsu:SecurityContextToken>
</oas:Security>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope> \t
Я могу увидеть значения с помощью DOM, но есть исключение, используя Stax. Незлая помощь.
почему саксофон? это печально известная плохая модель обработки, сложная в использовании, длинный утомительный код ... –
Нам нужно было обработать заголовки самым быстрым способом. – Sharat
Можете ли вы изменить свой вопрос, чтобы включить описание вашей логики приложения? IE. что ваш код пытается выполнить, я могу затем представить что-то для вас, чтобы рассмотреть ... –