迁移到Wildfly 8.1时出现Javax验证异常

迁移到Wildfly 8.1时出现Javax验证异常,java,validation,migration,wildfly,Java,Validation,Migration,Wildfly,我得到以下例外情况: 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 cus

我得到以下例外情况:

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) {
    [...]
}

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


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

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

javax.validation.ConstraintDeclarationException如果向重写或实现超类型方法的方法添加参数约束,则会引发异常。为了遵守Liskov替换原则,Bean验证规范(请参阅)强制执行此行为:

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

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) {
    [...]
}

}

在我的spring boot项目中,我面临同样的问题,您应该将在override方法中使用的验证注释移动到超类或接口中。

我描述了我为解决该问题所采取的操作。你称之为“方式”与否无关。