当前位置: 首页 > 知识库问答 >
问题:

qukusHibernate验证异常不显示在控制台上

卢光誉
2023-03-14

我有一个简单的项目使用QUUKUS 1.4.2。当我使用@Valid注释时,验证失败,状态为500,异常不会在控制台上显示。仅在Swagger UI中。我应该怎么做才能在控制台上打印出来?

@ApplicationScoped
public class ProductService {
    public void validateProduct(@Valid Product product) {

    }
}

正在发生的例外情况是:

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint

错误是正确的。只是没有显示在控制台上。

共有2个答案

阎咏思
2023-03-14

如果我理解正确,您需要使用Validator对象来捕获可能的异常:

@Inject
Validator validator;

public void validateProduct(Product product) {
    // Should throw an error
    Set<ConstraintViolation<Product>> violations = validator.validate(product);
    if(violations.isEmpty()) {
        return;
    }
    for (ConstraintViolation<Product> violation : violations) { // or log whole set as json
        System.out.println(violation.toString()); //TODO prettify
    }
    throw new ValidationException(JsonbBuilder.create().toJson(violations));
}

如果您得到一个500错误,您现在可以捕获它并记录。

或者只需在您呼叫服务的位置捕获意外的类型异常。这可能更好。

阳德润
2023-03-14

我希望这个错误会被记录下来,因为这肯定是一个可用性问题。我希望在我们收集Hibernate验证器元数据时,它会在启动时被记录,而不是每次调用。

您可以在此创建一个复制器并在Quarkus跟踪器中打开GitHub问题。

我会检查一下,看看有什么需要修理的。

 类似资料:
  • 我在SpringBoot api上工作,并使用具有以下属性设置的H2数据库。 当我想使用浏览器通过'http://localhost:8082/h2-console'查看H2数据库控制台时,浏览器中打开了一个带有连接和测试连接按钮的屏幕。当我单击Test Connection时,它返回成功,但当单击Connect按钮时,出现错误,即localhost拒绝连接。

  • 问题内容: 从Python控制台显示或图片的最简单方法是什么? 我有一个Python控制台程序正在检查一个数据集,该数据集包含到本地存储的图像的链接。我应该如何编写脚本以便显示图像弹出的图形窗口? 问题答案: 使用很棒的枕头库: 这将在默认图像查看器中打开图像。

  • 我正在测试带注释的javax验证。它们在应用程序中工作良好,方法参数上有注释。但是当我试图通过手动构建验证工厂来测试它们时 我得到以下错误。 javax。验证。ValidationException:HV000183:无法初始化“javax”。艾尔。“表达工厂”。检查类路径上是否有EL依赖项,或者改用ParameterMessageInterpolator 收到这个错误后,我在gradle文件中添

  • 当然,对于GUI,除非运行我上面提到的命令,否则不会加载控制台,所以如果您有很多打印语句,它是否仍然影响程序的速度,它们是否仍然打印?(即使认为没有显示终端/控制台)