[bv-dev] ValidationException with 5.0.0.Alpha2

Emmanuel Bernard emmanuel at hibernate.org
Wed Jan 2 11:01:23 EST 2013


It looks like you forgot a space in your xsi:schemaLocation

    xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mappingvalidation-mapping-1.1.xsd"
    ->
    xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd"

But that raises an interesting question. Today we have added a version
number in validation.xml and I believe the behavior is well defined.
What about mapping files? I don't think we considered that yet. What
should we do. Throwing a few ideas:

- add a version number like we did for validation.xml
- enforce consistent version use between validation.xml and the
  contained mapping files

Thoughts?

Emmanuel

On Wed 2013-01-02 16:38, Antonio Goncalves wrote:
> Hi all,
> 
> I'm trying to use validation.xml 1.1 to add constraints to me beans but I
> get a ValidationException. Here is the validation.xml file :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <constraint-mappings
>         xmlns="http://jboss.org/xml/ns/javax/validation/mapping"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>         xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mappingvalidation-mapping-1.1.xsd"
>         version="1.1">
> 
>   <default-package>org.agoncal.book.javaee7.chapter03</default-package>
>   <bean class="ex14.Book" ignore-annotations="false">
>     <field name="title">
>       <constraint annotation="javax.validation.constraints.NotNull"/>
>     </field>
>     <field name="price">
>       <constraint annotation="javax.validation.constraints.NotNull"/>
>       <constraint annotation="javax.validation.constraints.Min">
>         <element name="min">2</element>
>       </constraint>
>     </field>
>   </bean>
> </constraint-mappings>
> 
> In the spec (§8.1.4. XML Schema) it mentions something about versions, so
> I've tried to change my schema to 1.0 but still get my exception. Here is
> the part of the spec that talks about version issues and the stack trace.
> 
> Any idea ?
> Thanks
> 
> 
> 
> --------------------------------------------
> Stacktrace
> 8.1.4. XML Schema
> 
> This section contains the XML schema used for constraint mapping
> descriptors.
> 
> >From Bean Validation revision 1.1 onwards, mapping authors must specify the
> used version of the schema within the version attribute of the
> constraint-mappings element. Implementations supporting Bean Validation 1.1
> must properly parse mapping descriptors of Bean Validation 1.0 and 1.1. If
> the version attribute attribute is not given, schema version 1.0 is to be
> assumed by the Bean Validation Provider.
> 
> In case an unknown version is given (e.g. if a mapping descriptor adhering
> to a future schema version is parsed by a Bean Validation 1.1 provider) a
> ValidationException is raised.
> 
> 
> 
> --------------------------------------------
> Stacktrace
> 
> 
> 
> javax.validation.ValidationException: HV000100: Unable to parse
> META-INF/validation.xml.
> at
> org.hibernate.validator.internal.xml.ValidationXmlParser.unmarshal(ValidationXmlParser.java:121)
> at
> org.hibernate.validator.internal.xml.ValidationXmlParser.parseValidationXml(ValidationXmlParser.java:77)
> at
> org.hibernate.validator.internal.engine.ConfigurationImpl.getBootstrapConfiguration(ConfigurationImpl.java:263)
> at
> org.hibernate.validator.internal.engine.ConfigurationImpl.parseValidationXml(ConfigurationImpl.java:328)
> at
> org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:195)
> at
> javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:107)
> at
> org.agoncal.book.javaee7.chapter03.ex14.Book14Test.init(Book14Test.java:36)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:76)
> at
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)
> at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> Caused by: javax.xml.bind.UnmarshalException
>  - with linked exception:
> [org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 22; cvc-elt.1
> : Déclaration de l'élément 'constraint-mappings' introuvable.]
> at
> javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:335)
> at
> com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:512)
> at
> com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:209)
> at
> com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:181)
> at
> com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:235)
> at
> org.hibernate.validator.internal.xml.ValidationXmlParser.unmarshal(ValidationXmlParser.java:117)
> ... 24 more
> Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 22;
> cvc-elt.1 : Déclaration de l'élément 'constraint-mappings' introuvable.
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1901)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:741)
> at
> com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.startElement(ValidatorHandlerImpl.java:565)
> at
> com.sun.xml.internal.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startElement(ValidatingUnmarshaller.java:86)
> at
> com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:135)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3065)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
> at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
> at
> com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:203)
> ... 27 more
> 
> janv. 02, 2013 4:23:09 PM org.hibernate.validator.internal.util.Version
> <clinit>
> INFO: HV000001: Hibernate Validator 5.0.0.Alpha2
> janv. 02, 2013 4:23:09 PM
> org.hibernate.validator.internal.xml.ValidationXmlParser unmarshal
> INFO: HV000007: META-INF/validation.xml found. Parsing XML based
> configuration.
> 
> -- 
> Antonio Goncalves
> Software architect and Java Champion
> 
> Web site <http://www.antoniogoncalves.org/> |
> Twitter<http://twitter.com/agoncal>
>  | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris
> JUG<http://www.parisjug.org/>
>  | Devoxx France <http://www.devoxx.fr/>

> _______________________________________________
> beanvalidation-dev mailing list
> beanvalidation-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev



More information about the beanvalidation-dev mailing list