繁体   English   中英

无法使JSR303注释与Tomcat 7一起使用

[英]Not getting JSR303 annotations to work with Tomcat 7

经过几个小时的Google培训和一些教程后,我被击败了……这不是我遇到错误可以提示我问题所在的事实,完全是因为缺少错误让我发疯了!

以下代码有效,但并非应有! 用于检查输入不为null或小于3个字符的注释永远不会运行。 在部署项目或写入名称变量时,它们也不会给出任何类型的错误。

public class testBean
{
    @NotNull
    @Size(min=3)
    private String name;
}

public void test()
{
    System.out.println(name);
}

和输入形式:

<h:form>
        <h:inputText value="#{testBean.name}" />
    <h:commandButton value="Send" action="#{testBean.test()}" />
</h:form>

我的猜测是,正是tomcat导致了问题,尽管我相当确定自己已经导入了所有必需的库。 我正在使用的IDE(Eclipse)也是如此。

至于库,我在“ WEB-INF / lib”文件夹和“ apache-tomcat-7 / lib”文件夹中都包含了“ validation-api-1.0.0.GA.jar”。

您只安装了API,没有安装实现。 该API是抽象合同,因此您可以在代码中声明/使用它,并可以自由选择实现。 该实现包含具体代码并完成实际工作。 您还需要安装impl。 JSR-303参考实现是Hibernate Validator 下载详细信息在这里 当前最新的决赛是4.1.0 它包含hibernate-validator-4.1.0.Final.jar文件,这是真正的实现。 将其放在Webapp/WEB-INF/lib 它不一定必须位于Tomcat7/lib ,我也将从那里删除该API以防止将来发生类路径冲突。

我遇到了同样的问题,在我的情况下,使用hibernate-validator-4.2.0.Final.jar搜索了一段时间,我缺少slf4j-api-1.6.4.jar。 问题是休眠验证器不会崩溃,但不会告诉它不起作用....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM