Получение нулевого BigDecimal от JAX-WS, когда ввод клиента является недопустимой строкой - PullRequest
0 голосов
/ 25 ноября 2011

Я разрабатываю веб-сервис, используя WSDL (контракт-первый), который определяет одно из его полей как десятичный тип, который JAXB преобразует в BigDecimal при генерации клиентского кода.

Пока все хорошо.Но когда я тестирую с помощью SoapUI, если я отправляю недопустимую строку для этого поля (например, «xxxx»), я получаю нулевой BigDecimal на стороне сервера.Работает нормально, если я отправлю правильное числовое значение.

Я не могу сказать, что это поведение не имеет смысла для меня.API может получать NumberFormatException, возможно, из конструктора BigDecimal, и просто отправлять нулевое значение, чтобы избежать создания исключения до того, как он достигнет серверной стороны.

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

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

Заранее спасибо.

1 Ответ

0 голосов
/ 12 января 2012

Это проблема, связанная с интернационализацией.

У нас также есть веб-сервис, который ожидает BigDecimal, например: 2,56.

Один из наших клиентов в Италии отправляет 2,56.это приводит к получению нулевого параметра.Это связано с тем, что этот клиент использует итальянский язык.

...