Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 为什么不是';我的自定义bean验证消息是否被插入?_Java_Bean Validation - Fatal编程技术网

Java 为什么不是';我的自定义bean验证消息是否被插入?

Java 为什么不是';我的自定义bean验证消息是否被插入?,java,bean-validation,Java,Bean Validation,我似乎无法使用自定义验证消息。首先,我用一个自定义验证器尝试了它,但它在那里不起作用,所以接下来,我尝试使用一个带有自定义消息键的内置约束,但没有成功 下面是我针对该问题的JUnit4测试用例: public class PatternMessageTest { private static Validator validator; @BeforeClass public static void setUp() { ValidatorFactory fa

我似乎无法使用自定义验证消息。首先,我用一个自定义验证器尝试了它,但它在那里不起作用,所以接下来,我尝试使用一个带有自定义消息键的内置约束,但没有成功

下面是我针对该问题的JUnit4测试用例:

public class PatternMessageTest {
    private static Validator validator;

    @BeforeClass
    public static void setUp() {
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        validator = factory.getValidator();
    }

    @Test
    public void testIsValid_invalid() {
        StringHolder stringHolder = new StringHolder();
        stringHolder.setSomeString("not digits");

        Set<ConstraintViolation<StringHolder>> constraintViolations = validator.validate(stringHolder);
            assertEquals(1, constraintViolations.size());
            assertEquals(
                "Some validation message", 
                constraintViolations.iterator().next().getMessage());
    }

    private class StringHolder {
        @Valid
        @Pattern(regexp="\\d+", message="{mymessagekey}")
        private String _someString;

        // _someString getter, setter
    }

}
测试输出为:

org.junit.ComparisonFailure: expected:<[Some validation message]> but was:<[{mymessagekey}]>
org.junit.ComparisonFailure:应为:但为:
所以消息密钥显然没有被找到。我做错了什么

相关类路径:

  • validation-api-1.0.0.GA.jar
  • hibernate-validator-4.1.0.Final.jar
  • hibernate-validator-annotation-processor-4.1.0.Final.jar

在开始这样一个简单的测试用例之前,我向一个Spring MVC应用程序添加了验证,其行为是相同的:我不断获取带有括号的密钥,作为验证返回的消息。

“它位于我的
test
目录的根目录中”,该目录是类路径的一部分吗?
test
是Eclipse中的一个源文件夹,ValidationMessages.properties最终位于编译包目录结构旁边的bin/中。
org.junit.ComparisonFailure: expected:<[Some validation message]> but was:<[{mymessagekey}]>