I, and others, have encountered some problems.
As with some other JSRs, javax.validation suffers from classloader problems when used in OSGi. At very least, one must manipulate the thread context classloader. I have never succeeded in making the SPI work; all the examples I have seem end up using a customized provider that references HibernateValidator. If there is a way to get this to work, many would benefit from documentation of it.
However, the problem gets worse. Hibernate goes and calls the API for javax.el _at the time the application calls validate. So, the application has to come up with a classloader that 'sees' com.sun.el (or whatever) when it calls validate, not just when it builds a validator. This is really a pain.
The Karaf feature provided uses the <wrap> mechanism. This is not desirable, and, in fact, causes Karaf 4 to hang in some cases. It's not needed; see https://github.com/apache/cxf/blob/3.1.x-fixes/osgi/karaf/features/src/main/resources/features.xml#L443 for a working feature that does not use wrap.
However, also note that this depends on the ServiceMix bundle that provides a solution to the SPI classloading problem
Apache Karaf 4.0,2, etc.