Ошибка при переносе неисправности с DUT на средство тестирования Onvif Device в тестовом примере

Ошибка при возникновении ошибки от DUT в тестовом случае. ============================== ============================

В тестовом примере EventProperties>RealTimePullPointNotification Interface>EVENT-3-1-17-v14.12 ПОДПИСКА НА ПУНКТ ПУЛЛЯЦИИ В РЕАЛЬНОМ ВРЕМЕНИ — ФИЛЬТР СОДЕРЖИМОГО НЕДЕЙСТВИТЕЛЬНОГО СООБЩЕНИЯ DUT отправляет сообщение об ошибке клиенту.

При проверке ошибки в клиенте (Onvif Device Test Tool версии 6.12) я получаю сообщение об ошибке No Action element из пространства имен Addressing10 (http://www.w3.org/2005/08/addressing).

Я установил для элемента wsa:Action значение http://www.w3.org/2005/08/addressing/soap/fault, то я также получаю указанную выше ошибку.

Вывод инструмента тестирования устройств onvif выглядит следующим образом:

EVENT-3-1-17-v14.12 REALTIME PULLPOINT SUBSCRIPTION - INVALID MESSAGE CONTENT FILTER

STEP 4 - Create Pull Point Subscription - negative test
StepStart: 2019-11-13T17:18:31.6582116Z
Transmit done
Receive done
SOAP fault returned
Code: Sender
Reason: InvalidMessageContentExpression
Validate fault...
*No Action element from namespace Addressing10 (http://www.w3.org/2005/08/addressing). Expected element with value: http://www.w3.org/2005/08/addressing/soap/fault.*
STEP FAILED
TEST FAILED

Мой XML, который отправляет ошибку от DUT к клиенту, выглядит следующим образом: ============================= ===========================

*std::string soapFault =
"<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope">"
"<SOAP-ENV:Header xmlns:wsa="http://www.w3.org/2005/08/addressing" >"
"<wsa:MessageID>"
"urn:uuid:c9517d6a-44e7-427a-a1f4-6902eb52a979"
"</wsa:MessageID>"
"<wsa:ReplyTo SOAP-ENV:mustUnderstand="true">"
"<wsa:Address>http://192.168.0.95:8082/onvif</wsa:Address>"
"</wsa:ReplyTo>"
"<wsa:To SOAP-ENV:mustUnderstand="true">http://192.168.0.95:8082/onvif/event_service</wsa:To>"
"<wsa:Action SOAP-ENV:mustUnderstand="true">"http://www.w3.org/2005/08/addressing/soap/fault"</wsa:Action>"
"</SOAP-ENV:Header>"
"<SOAP-ENV:Body>"
"<SOAP-ENV:Fault>"
"<SOAP-ENV:Code>"
"<SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value>"
"<SOAP-ENV:Subcode>"
"<SOAP-ENV:Value>ter:InvalidArgVal</SOAP-ENV:Value>"
"<SOAP-ENV:Subcode>"
"<SOAP-ENV:Value>ter:InvalidMessageContentExpression</SOAP-ENV:Value>"
"</SOAP-ENV:Subcode>"
"</SOAP-ENV:Subcode>"
"</SOAP-ENV:Code>"
"<SOAP-ENV:Reason>"
"<SOAP-ENV:Text xml:lang="en"/>"
"</SOAP-ENV:Reason>"
"<SOAP-ENVetail>"
"</SOAP-ENVetail>"
"</SOAP-ENV:Fault>"
"</SOAP-ENV:Body>"
"</SOAP-ENV:Envelope>";*

person krishnaj76    schedule 13.11.2019    source источник


Ответы (1)


Из §9.9 основных спецификаций ONVIF:

9.9 Сообщения об ошибках SOAP

Если устройство обнаруживает сбой при обработке сообщений [WS-BaseNotification] от клиента или диспетчера подписки, то устройство должно генерировать сообщение об ошибке SOAP 1.2. Все сообщения об ошибках SOAP 1.2 должны генерироваться в соответствии с [WS-BaseNotification] и [ WS-Topics] за одним исключением;

Все ошибки должны использовать следующий URI для свойства адресации сообщений WS-Addressing [action]:

http://www.w3.org/2005/08/addressing/soap/fault

Кроме того, ошибка должна быть отправлена ​​как ошибка приемника SOAP (env:Receiver), т. е. код ошибки HTTP должен быть 500.

person Ottavio Campana    schedule 14.11.2019
comment
Я пытался отправить мыло 1.2 Ошибка приемника. из DUT я все еще получаю ту же ошибку No Action element из пространства имен Addressing10 (w3.org/2005/ 08/обращение). Ожидаемый элемент со значением: w3.org/2005/08/addressing/soap/fault . - person krishnaj76; 17.11.2019