IBM ODM: реагирование на ошибки HTDS и SOAP - PullRequest
0 голосов
/ 06 сентября 2018

Я сделал очень простой RuleApp с IBM ODM и развернул его на Rule Execution Server (RES).

Я собираюсь вызвать это приложение по протоколу SOAP, поэтому я получил определение WSDL из HTDS.

В этот сервис входит простой класс с одним строковым полем с именем input1.

Выходной класс тоже прост, с одним строковым полем - output1.

Когда я вызываю эту службу SOAP со значением input1 «Ошибка», я хочу ответить ошибкой SOAP и настроить ее поле «Описание».

В противном случае я хочу отправить обычный ответ с полем output1, установленным на «success!».

Я пытался сделать это с помощью Action Rule и оператора if else, выбрасывая новое исключение java.lang.Exception.

В случае input1=="Error" вызывается исключение, и я получаю сообщение об ошибке SOAP с трассировкой стека, напечатанной в поле Описание.

Меня интересует, как настроить этот ответ Fault, чтобы я мог установить для поля описания значение «что-то» и для поля faultactor значение «что-то2», а строку ошибок - «нечто3»?

1 Ответ

0 голосов
/ 07 сентября 2018

Я никогда не видел, чтобы кто-то делал то, что вы пытаетесь сделать.

Вообще говоря, я бы не ожидал, что ошибка SOAP будет использоваться для сообщения информации бизнес-уровня. Я ожидаю, что о бизнес-результатах, даже отрицательных или исключительных, будет сообщено в ответе SOAP, в результате чего ошибка SOAP будет решена на уровне сервера.

Я бы посоветовал вам сделать как можно меньше настроек, обойтись без готовых функциональных возможностей, если это вообще возможно. Весь смысл работы ODM через HTDS состоит в том, чтобы стандартизировать все, чтобы избежать необходимости решать проблемы межпроцессного взаимодействия, оставляя вместо этого больше времени для решения проблемы бизнес-уровня.

...