繁体   English   中英

javax.validation.ValidationException:%class%已在xml中配置

[英]javax.validation.ValidationException: %class% has already be configured in xml

在项目的jar中有一个bean验证,validation.xml包含Address bean的字段级验证。

另一个项目使用Address类,并且需要进行特定的Address验证。 因此,用Address Bean的类级验证创建了extended-validation.xml。

结果,在应用程序部署期间,发生ValidationException: javax.validation.ValidationException: my.base.datatypes.Address has already be configured in xml.

这是两个具有基本验证和“扩展验证”的验证xml文件。

validation.xml中

<bean class="my.base.datatypes.Address" ignore-annotations="true">
    <getter name="country">
        <constraint annotation="my.imp.services.validation.ValidCode">
            <message>{msg01}</message>
            <groups>
                <value>my.imp.services.validation.ImportGroup</value>
            </groups>
            <element name="name">Country</element>
        </constraint>
    </getter>
</bean>

扩展的validation.xml

<bean class="my.base.datatypes.Address" ignore-annotations="true">
    <class ignore-annotations="true">
        <constraint annotation="my.extended.imp.services.validation.ValidAddress">
            <message>ERROR DURING ADDRESS VALIDATION</message>
            <groups>
                <value>my.imp.services.validation.ImportGroup</value>
            </groups>
        </constraint>
    </class>
</bean>

是否可以扩展已经存在的验证?

解决方案似乎非常简单和琐碎。 如果要扩展验证规则,请使用其他验证器,该验证器将加载extended-validation.xml约束配置。 在这种情况下,基本验证器根据validation.xml配置验证数据,另一个验证器根据extended-validation.xml配置验证数据。 因此,不再发生配置冲突。

暂无
暂无

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

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