Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Axis2 как отправить Fault без тега detail& 
:(
    Опции темы
pavels87
Дата 1.6.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.6.2011

Репутация: нет
Всего: нет



Добрый день!

С axis, я работаю второй день. Возникла задача:
Клиенту отправляется ошибка, к примеру:
Код
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>incorrect_request</faultcode>
<faultstring>Клиент указал некорректные данные</faultstring>
<detail />
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>


Но по реламенту взаимодействия тег detail не нужен. Не подскажете как мне его выпилить?

Заранее огромное спасибоsmile
PM MAIL   Вверх
AntonSaburov
Дата 1.6.2011, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Не могу утверждать однозначно - не работал с Axis2 - но если смотреть протоколы SOAP версий 1.1. и 1.2, то то, что указано относится к версии 1.1.
А там сказано так:
detail
The detail element is intended for carrying application specific error information related to the Body element. It MUST be present if the contents of the Body element could not be successfully processed. It MUST NOT be used to carry information about error information belonging to header entries. Detailed error information belonging to header entries MUST be carried within header entries.

Хидер отработал нормально, и есть проблемы c обработкой тела (судя по сообщению именно так и есть). Значит сообщение ДОЛЖНО содержать раздел detail.
PM MAIL WWW ICQ   Вверх
pavels87
Дата 2.6.2011, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.6.2011

Репутация: нет
Всего: нет



Цитата(AntonSaburov @ 1.6.2011,  17:55)
Хидер отработал нормально, и есть проблемы c обработкой тела (судя по сообщению именно так и есть). Значит сообщение ДОЛЖНО содержать раздел detail.

Антон, спасибо за участие в решение задачи.
Спеку соапа я уже проштудировал, и этот параграф тоже меня засмущал сильно. Но там же в примерах:

Example 9 Similar to Example 2 but Failing to honor Mandatory Header
Код

HTTP/1.1 500 Internal Server Error
 Content-Type: text/xml; charset="utf-8"
 Content-Length: nnnn
 <SOAP-ENV:Envelope
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <SOAP-ENV:Fault>
            <faultcode>SOAP-ENV:MustUnderstand</faultcode>
            <faultstring>SOAP Must Understand Error</faultstring>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>


И в спеке SOAP 1.2, версия по которой я работаю, есть такая инфа:
The Detail element information item MAY be present in a SOAP fault in which case it carries additional information relative to the SOAP fault codes describing the fault.

Здесь как раз таки и говорится, что он может быть представлен, для пояснения проблемы, если это не понятно из faultcode и faultstring.

Вот такие дела, уже голову себе сломал. 

PM MAIL   Вверх
AntonSaburov
Дата 2.6.2011, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Но выше там написано так:

SOAP 1.2 uses the element names env:Code and env:Reason, respectively, for what used to be called faultcode and faultstring in SOAP 1.1. SOAP 1.2 also allows multiple env:Text child elements of env:Reason qualified by xml:lang to allow multiple language versions of the fault reason.
PM MAIL WWW ICQ   Вверх
pavels87
Дата 2.6.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.6.2011

Репутация: нет
Всего: нет



Вот последнее не понялsmile
Как это мне может помочь?

Просто если эта задача неразрешима или заявка некорректна, то мне необходимо объяснить причину, а вот не хочется втирать умным людям, что они не правы не будучи уверенным на все стоsmile

Это сообщение отредактировал(а) pavels87 - 2.6.2011, 14:54
PM MAIL   Вверх
AntonSaburov
Дата 3.6.2011, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Так написано, что в 1.2 используется env:Code and env:Reason вместо faultcode и faultstring в 1.1.

Т.е. сообщение, которое приведено в начале, соответствует протоколу версии 1.1 - а там detail присутствует.

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.