2014-01-08 2 views
0

Я разрабатываю приложение IceFaces, ориентируясь на несколько платформ приложений. Одним из целевых серверов является JBoss AS 7.2, но проверка моих прав на него приводит к странному поведению. В сущности, я создал следующие контрсилы для поля Integer, который связан с полем ввода:Минимальные/максимальные значения для JBoss с использованием аннотаций

@Min(value=1) 
@Max(value=99) 
@Column(name = "ORDER") 
private Integer order; 

По спецификации нулевые значения считаются действительными. Это именно то, что происходит с Weblogic 12c. Но с JBoss, когда я отправляю нулевое значение, бросил javax.validation.ConstraintViolationException. Кроме того, конвертер по умолчанию (если я его допускаю) преобразует нулевое значение в ноль. Over Weblogic снова выполняет ожидаемую вещь: игнорировать нуль, оставляя поле ввода пустым.

Какие-нибудь идеи в чем разница, и как их преодолеть?

ответ

0

Если у кого-то встречается та же проблема, вот решение, которое могло бы помочь: Похоже, что Tomcat (контейнер сервлетов JBoss) всегда преобразует нулевые значения, поэтому пустые значения поля ввода равны нулю, если поле привязано к Номер экземпляра. Но нуль, очевидно, меньше заданного противопоказания (min 1), поэтому сохранение объекта генерирует исключение.

Установка следующий параметр JVM исправляет проблему: -Dorg.apache.el.parser.COERCE_TO_ZERO=false