[bv-dev] ValidationException with 5.0.0.Alpha2

Antonio Goncalves antonio.mailing at gmail.com
Wed Jan 2 11:23:27 EST 2013


My bad, I mixed the validation.xml and constraints.xml files (and mixed the
XSDs). This is what I done and it works (with version 1.1 everywhere) :


*validation.xml*
<?xml version="1.0" encoding="UTF-8"?>
<validation-config
        xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
http://jboss.org/xml/ns/javax/validation/configurationvalidation-configuration-1.1.xsd"
        version="1.1">

  <constraint-mapping>META-INF/constraints.xml</constraint-mapping>

</validation-config>

*constraints.xml*
<?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">

  <bean class="org.agoncal.book.javaee7.chapter03.ex14.Book14"
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="value">2</element>
      </constraint>
    </field>
    <field name="description">
      <constraint annotation="javax.validation.constraints.Size">
        <element name="max">2000</element>
      </constraint>
    </field>
  </bean>
</constraint-mappings>


2013/1/2 Emmanuel Bernard <emmanuel at hibernate.org>

> 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/mappingvalidation-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
>
> _______________________________________________
> beanvalidation-dev mailing list
> beanvalidation-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>



-- 
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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/beanvalidation-dev/attachments/20130102/e16957ff/attachment-0001.html 


More information about the beanvalidation-dev mailing list