2015-10-05 5 views
1

В банке проекта есть проверка bean-компонента, в файле validation.xml которой содержится проверка на уровне поля адресного бина.javax.validation.ValidationException:% class% уже настроен в xml

Другой проект использует класс Address и должен иметь определенную проверку адреса. Таким образом, extended-validation.xml был создан с проверкой на уровне класса Address bean.

В результате во время развертывания приложения выполняется проверка ValidationException: javax.validation.ValidationException: my.base.datatypes.Address has already be configured in xml..

Вот два файла xml проверки достоверности с базовой проверкой и расширенной проверкой.

validation.xml

<bean class="my.base.datatypes.Address" ignore-annotations="true"> 
    <getter name="country"> 
     <constraint annotation="my.imp.services.validation.ValidCode"> 
      <message>{msg01}</message> 
      <groups> 
       <value>my.imp.services.validation.ImportGroup</value> 
      </groups> 
      <element name="name">Country</element> 
     </constraint> 
    </getter> 
</bean> 

продлен validation.xml

<bean class="my.base.datatypes.Address" ignore-annotations="true"> 
    <class ignore-annotations="true"> 
     <constraint annotation="my.extended.imp.services.validation.ValidAddress"> 
      <message>ERROR DURING ADDRESS VALIDATION</message> 
      <groups> 
       <value>my.imp.services.validation.ImportGroup</value> 
      </groups> 
     </constraint> 
    </class> 
</bean> 

Можно ли расширить уже существующую проверку?

ответ

0

Решение представляется очень простым и тривиальным. Если вы хотите расширить правила проверки, используйте другой валидатор, который будет загружать конфигурацию ограничений extended-validation.xml. В этом случае базовый валидатор проверяет данные в соответствии с конфигурацией validation.xml, а другой валидатор проверяет данные в соответствии с конфигурацией extended-validation.xml. Таким образом, больше конфликтов конфигурации не происходит.