Other news: the CXF bean validation features almost work. I'm fixing https://issues.apache.org/jira/browse/CXF-6705.
On Fri, Dec 11, 2015 at 7:26 AM, Benson Margulies <[email protected]> wrote: > The good news is, now I have a test case. > > https://github.com/benson-basis/cxf-karaf-validation-tc > > This project demonstrates that Apache CXF 3.1.2 somehow causes > Hibernate to go off the rails, failing to find it's EL provider, in > Karaf. Without the full-started CXF service, it works fine. > > I did try something like the proposed workaround in that stackoverflow > question, but I can't figure out what classloader is going to work. > Karaf claims that no bundle exports the class that Hibernate claims to > be looking for. > > > On Fri, Dec 11, 2015 at 3:46 AM, Charlie Mordant <[email protected]> wrote: >> Hi Benson, >> >> You should have a more advanced use case than me ^^. >> I fell on this thread: >> http://stackoverflow.com/questions/29678113/el-implementation-is-not-found-for-hibernate-validator-in-osgi-container >> >> So my guess is that: >> * Either there's no el provider on the provisionned bundles ( but i doubt,) >> * Either we should wrap the hibernate validator jar to be weaved by Aries >> spi-fly (that allows to make that bundle's serviceloader working). >> >> You can also try to bump the HV version (I filled a Jira which seems to be >> fixed: https://hibernate.atlassian.net/browse/HV-846). >> >> Regards, >> Charlie >> >> 2015-12-10 19:10 GMT+01:00 Benson Margulies <[email protected]>: >>> >>> Next problem: >>> >>> using your stuff, I get a problem with EL. I think I ran into this >>> before. Charlie, does this ring any bells for you? >>> >>> >>> Caused by: java.lang.ExceptionInInitializerError >>> at >>> org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolateExpression(ResourceBundleMessageInterpolator.java:227) >>> at >>> org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolateMessage(ResourceBundleMessageInterpolator.java:187) >>> at >>> org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolate(ResourceBundleMessageInterpolator.java:115) >>> at >>> org.hibernate.validator.internal.engine.ValidationContext.interpolate(ValidationContext.java:370) >>> at >>> org.hibernate.validator.internal.engine.ValidationContext.createConstraintViolation(ValidationContext.java:284) >>> at >>> org.hibernate.validator.internal.engine.ValidationContext.createConstraintViolations(ValidationContext.java:246) >>> at >>> org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:289) >>> at >>> org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:133) >>> at >>> org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:91) >>> at >>> org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:85) >>> at >>> org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:478) >>> at >>> org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:424) >>> at >>> org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:388) >>> at >>> org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:340) >>> at >>> org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:158) >>> at >>> com.basistech.ws.common.api.options.OptionsValidator.validate(OptionsValidator.java:35) >>> at >>> com.basistech.ws.common.api.options.ProcessingOptions$Builder.setOptions(ProcessingOptions.java:112) >>> at >>> com.basistech.ws.frontend.service.AbstractRaasRsService.getProcessingOptions(AbstractRaasRsService.java:750) >>> at >>> com.basistech.ws.frontend.service.AbstractRaasRsService.processRequest(AbstractRaasRsService.java:582) >>> at >>> com.basistech.ws.frontend.service.AbstractRaasRsService.processHelper(AbstractRaasRsService.java:210) >>> at >>> com.basistech.ws.frontend.service.RaasRsLanguageService.runRli(RaasRsLanguageService.java:119) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:497) >>> at >>> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180) >>> at >>> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) >>> ... 36 more >>> Caused by: javax.el.ELException: Provider >>> com.sun.el.ExpressionFactoryImpl not found >>> at javax.el.FactoryFinder.newInstance(FactoryFinder.java:101) >>> at javax.el.FactoryFinder.find(FactoryFinder.java:197) >>> at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:197) >>> at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:168) >>> at >>> org.hibernate.validator.internal.engine.messageinterpolation.InterpolationTerm.<clinit>(InterpolationTerm.java:60) >>> ... 63 more >>> Caused by: java.lang.ClassNotFoundException: >>> com.sun.el.ExpressionFactoryImpl not found by >>> org.apache.cxf.cxf-rt-transports-http [110] >>> at >>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1558) >>> at >>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) >>> at >>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1919) >>> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:959) >>> at >>> org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLoader.java:176) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >>> at >>> org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLoader.java:192) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>> at javax.el.FactoryFinder.newInstance(FactoryFinder.java:87) >>> ... 67 more >>> </pre> >>> >>> On Thu, Dec 10, 2015 at 11:21 AM, Benson Margulies <[email protected]> >>> wrote: >>> > I ran into a hitch. You're import won't accept guava 16. I guess I'll >>> > load up two guavas. >>> > >>> > On Mon, Dec 7, 2015 at 10:46 AM, Charlie Mordant <[email protected]> >>> > wrote: >>> >> Hi Benson, >>> >> >>> >> I got it working making my own validation feature, you can find it >>> >> here: >>> >> >>> >> https://github.com/OsgiliathEnterprise/net.osgiliath.parent/blob/master/net.osgiliath.framework/net.osgiliath.features/net.osgiliath.feature.validation/src/main/resources/net.osgiliath.feature.validation.xml >>> >> >>> >> Regards, >>> >> >>> >> 2015-12-07 16:10 GMT+01:00 Benson Margulies <[email protected]>: >>> >>> >>> >>> I could not get the Hibernate bean validation feature to work in >>> >>> 4.0.x. For one thing, it's in the 'enterprise' feature set, which does >>> >>> not work at all without extra <repository> elements which I can't >>> >>> have. Even when I copied it out, I still couldn't get it to work. >>> >>> >>> >>> So I made a working feature with Apache Bval. However, the Bval >>> >>> project seems to be perpetually asleep, and so I can't get a problem >>> >>> with one of their bundles fixed. So, I'm hoping that someone has an >>> >>> idea about how to rehab the hibernate solution. >>> >> >>> >> >>> >> >>> >> >>> >> -- >>> >> Charlie Mordant >>> >> >>> >> Full OSGI/EE stack made with Karaf: >>> >> https://github.com/OsgiliathEnterprise/net.osgiliath.parent >> >> >> >> >> -- >> Charlie Mordant >> >> Full OSGI/EE stack made with Karaf: >> https://github.com/OsgiliathEnterprise/net.osgiliath.parent
