[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