迁移到Wildfly 8.1时的Javax验证异常

时间:2014-11-21 11:32:41

标签: java validation migration wildfly

我收到以下异常:

  

javax.validation.ConstraintDeclarationException:HV000151:   覆盖另一个方法的方法不得更改参数约束配置

在Wildfly 8.1服务器上部署我的应用程序时。该项目正在以前的JBoss 7.1应用服务器上部署并运行良好。我是否需要对代码进行更改,或者配置是否存在问题?

3 个答案:

答案 0 :(得分:0)

如果将参数约束添加到重写或实现超类型方法的方法,则会引发

javax.validation.ConstraintDeclarationException。 Bean验证规范(请参见http://beanvalidation.org/1.1/spec/#constraintdeclarationvalidationprocess-methodlevelconstraints-inheritance)强制执行此行为,以遵守Liskov替换原则:

例如下面的代码在子类上非法声明的参数约束,它将抛出以上异常:

public class OrderService {

void placeOrder(String customerCode, Item item, int quantity) { [...] }
} 

public class SimpleOrderService extends OrderService {

@Override
public void placeOrder(
    @NotNull @Size(min=3, max=20) String customerCode,
    @NotNull Item item,
    @Min(1) int quantity) {
    [...]
}

}

答案 1 :(得分:0)

我在Spring Boot项目中遇到了同样的问题,您应该将在替代方法中使用的验证注释移到超类或接口中。

答案 2 :(得分:-3)

我找不到任何配置来帮助解决这个问题所以我从实现类中删除了参数约束,从而解决了这个问题。