Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAX-RS上的Bean验证没有';t阻止无效的请求_Java_Jax Rs_Bean Validation - Fatal编程技术网

Java JAX-RS上的Bean验证没有';t阻止无效的请求

Java JAX-RS上的Bean验证没有';t阻止无效的请求,java,jax-rs,bean-validation,Java,Jax Rs,Bean Validation,我有一个简单的JAX-RS服务,用JSR-303注释: @Path("/settings") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ValidateRequest public interface SettingsRestService { @POST SettingsResponse saveSetting (@Valid @NotNull Setting setting); } 我的设置课程: p

我有一个简单的JAX-RS服务,用JSR-303注释:

@Path("/settings")
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
@ValidateRequest
public interface SettingsRestService {

    @POST
    SettingsResponse saveSetting (@Valid @NotNull Setting setting);
}
我的
设置
课程:

public class Setting {

    @NotNull(message = "Field key must exist.")
    @Pattern(regexp = "^[\\w]+$", 
        message = "Field key must only contain alphanumeric characters and underscores.")
    private String key;

    @NotNull(message = "Field value must exist.")
    @Size(min = 1, message = "The value of the setting must be at least 1 character.")
    private String value;

    ...
}
当我向端点发送以下JSON对象时:

{
    "key": "aKey+",
    "value": "aValue"
}
我得到的答复是:

{
    exception: null
    fieldViolations: [0]
    propertyViolations: [0]
    classViolations: [0]
    parameterViolations: [1]
      0: {
           constraintType: "PARAMETER"
           path: "SettingsRestService#saveSetting(arg0).key"
           message: "Field key must only contain alphanumeric characters and underscores."
           value: "aKey+"
         }-
      -
    returnValueViolations: [0]
}
即使验证工作正常,请求仍会通过服务并由应用程序的其余部分处理

你知道为什么这不会被阻止吗?我是否需要其他配置来处理验证


WAR部署在JBoss 6.3.3.GA上,我们使用Hibernate Validator 4.3.2.Final-redhat-1和resteasy-jaxrs-3.0.9.Final。

在我们的例子中,拦截器似乎“隐藏”了从resteasy抛出的异常。我还没有找到“为什么”,但是如果我有更新,我会让你知道。

显示堆栈跟踪。我在日志中没有看到任何内容。还有其他想法吗?我看不出这种行为的原因:请求仍然通过服务并由应用程序的其余部分处理。我不确定这是否与我们遇到的类似问题有关。我们的JBoss版本似乎与hibernate validator的错误版本捆绑在一起。我们以前遇到过一些问题,验证甚至没有触发。但这一次,验证似乎触发了,只是没有阻塞。