Как получить переменную $ fault, как в сообщении ErrorMessage в потоке сообщений прокси OSB?

На этапе проверки в моем обработчике ошибок этапа я вижу, что переменная $ fault заполняется правильным xml, который является причиной ошибки. Я хочу назначить весь этот xml «КАК ЕСТЬ» в моем ErrorMessage и связать его со строкой. Я пробовал следующее: fn: concat ('myString', fn-bea: inlinedXML ($ fault / *))

Теперь в моем сообщении об ошибке есть строка, плюс она показывает ошибку в каком-то другом формате. Мы будем благодарны за немедленный ответ.


person K Sharma    schedule 13.12.2016    source источник
comment
Что это - какой-то другой формат? Не могли бы вы уточнить, пожалуйста. Измените свой вопрос, добавив в него образцы текущего и ожидаемого формата, чтобы другим было легко понять проблему и помочь вам.   -  person Habin    schedule 13.12.2016
comment
@Habin текущий формат приближается к следующему: ‹Mystring.› BEA-382505OSB Проверка действия не удалась проверка Недопустимое значение даты: неправильный тип: строковое значение '' не является допустимым значением перечисления для *** в пространстве имен *** строковое значение ' 'не является допустимым значением перечисления для *** в пространстве имен *** Ожидаемый формат следующий: ‹con: fault xmlns: con = bea.com/wli/sb/ Подтвердить действие не удалось проверить ‹/ con: cause ›‹ Con: подробности ›Приносим извинения за поздний ответ и благодарим за возврат.   -  person K Sharma    schedule 20.12.2016


Ответы (1)


Я получил ожидаемый формат, присвоив своему ErrorMessage следующее:

fn: concat ('myString', fn-bea: serialize ($ fault / *))

person K Sharma    schedule 20.12.2016
comment
Просто имейте в виду, что serialize() может быть медленным для больших полезных данных xml. Помещение его в обработчик ошибок может быть рискованным для сервисов большого объема. - person Trent Bartlem; 07.01.2017
comment
Привет, @TrentBartlem Спасибо за возврат. Мы в основном используем serialize () в наших обработчиках ошибок для большинства служб при получении сообщения ErrorMessage. Каким должен быть другой подход? - person K Sharma; 09.01.2017
comment
Ошибки мыла не так уж и плохи (хотя вы можете просто выбрать сообщение об ошибке и детали и / или обрезать части, если вы получаете трассировку стека 200 КБ от веб-службы Java или что-то в этом роде) - вы можете использовать асинхронную публикацию, если хотите , хотя в этом есть свои проблемы). Реальная опасность заключается в использовании serialize () для сообщений запроса и ответных сообщений, потому что у вас действительно нет большого контроля над их размером. - person Trent Bartlem; 09.01.2017
comment
Спасибо @TrentBartlem :) - person K Sharma; 13.01.2017