gpt4 book ai didi

json - 验证异常映射器不返回 JSON 格式

转载 作者:行者123 更新时间:2023-12-04 14:28:27 26 4
gpt4 key购买 nike

我使用 Jersey 2.5.1 作为 jax-rs 实现,我使用 Moxy 作为 JSON 序列化程序。我将 Jersey 配置为将验证错误打印到 web.xml 中的输出。

<init-param>
<param-name>jersey.config.beanValidation.enableOutputValidationErrorEntity.server</param-name>
<param-value>true</param-value>
</init-param>

这工作正常,因为验证错误以纯文本(文本/纯文本)形式返回。问题是我想以 JSON 格式并根据 Jersey documentation 获取验证错误消息为此,必须为此配置一个 JSON 提供程序。据我所知,当 Moxy 的依赖项附加到类路径时,它被配置为 JSON 提供程序。不幸的是,我的验证错误没有以 JSON (application/json) 格式返回。什么可能是错的。我必须配置额外的位吗?

附言
当我调试 ValidationExceptionMapper 以下代码时,返回媒体类型为 text/plain 的 Variant 对象
if (property != null && Boolean.valueOf(property.toString())) {
final List<Variant> variants = Variant.mediaTypes(
MediaType.TEXT_PLAIN_TYPE,
MediaType.TEXT_HTML_TYPE,
MediaType.APPLICATION_XML_TYPE,
MediaType.APPLICATION_JSON_TYPE).build();
final Variant variant = request.get().selectVariant(variants);
if (variant != null) {
response.type(variant.getMediaType());
} else {

// default media type which will be used only when none media type from {@value variants} is in accept
// header of original request.
// could be settable by configuration property.
response.type(MediaType.TEXT_PLAIN_TYPE);
}
response.entity(
new GenericEntity<List<ValidationError>>(
ValidationHelper.constraintViolationToValidationErrors(cve),
new GenericType<List<ValidationError>>() {}.getType()
)
);
}

最佳答案

正如我在评论中提到的,不返回 JSON 格式的原因是因为我正在发送 header :

接受: */*

它必须设置为:

接受:应用程序/json

才能正常工作。

关于json - 验证异常映射器不返回 JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com