I tried bundle:tree-show on the hibernate bundle (https://gist.github.com/benson-basis/d76e7c79e3a277a27efa). Maybe the fact that it isn't showing me anything I recognize about javax.el is the root of the trouble?
On Sun, Nov 8, 2015 at 1:21 PM, Benson Margulies <[email protected]> wrote: > Felix is the framework. > > I do not have any PackageAdmin code. > > I don't have a great way to make this available to you right now. I am > considering trying to switch to the cxf bean validation feature > instead of the code I posted. > > I think the following is the most relevant backtrace: > > Caused by: java.lang.ClassNotFoundException: > com.sun.el.ExpressionFactoryImpl not found by > org.apache.cxf.cxf-rt-transports-http [102] > 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) > at javax.el.FactoryFinder.find(FactoryFinder.java:197) > at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:189) > at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:160) > at > org.hibernate.validator.internal.engine.messageinterpolation.InterpolationTerm.<clinit>(InterpolationTerm.java:60) > > > > > On Sun, Nov 8, 2015 at 1:11 PM, Benson Margulies <[email protected]> wrote: >> package:exports -d does not think that more than one bundle is >> exporting the package. >> >> Here's the class I built to stay out of the SPI. >> >> public final class OSGIValidationFactory { >> private OSGIValidationFactory() { >> // >> } >> >> static class OSGIServiceDiscoverer implements ValidationProviderResolver >> { >> >> @Override >> public List<ValidationProvider<?>> getValidationProviders() { >> List<ValidationProvider<?>> providers = new ArrayList<>(); >> providers.add(new HibernateValidator()); >> return providers; >> } >> } >> >> public static ValidatorFactory newHibernateValidatorFactory() { >> javax.validation.Configuration<?> config = >> Validation.byDefaultProvider() >> .providerResolver(new OSGIServiceDiscoverer()) >> .configure(); >> >> return config.buildValidatorFactory(); >> } >> } >> >> >> On Sun, Nov 8, 2015 at 1:10 PM, Benson Margulies <[email protected]> >> wrote: >>> Karaf 4.0.2. >>> >>> I'm not sure what you mean by 'framework'. I'm just running karaf, I >>> am not messing with the system bundle. I pulled together my own little >>> bundle for validation that uses a custom locator to avoid the SPI, and >>> it works in an isolated test in karaf, but when I put the whole thing >>> together, blam. How would I investigate the possibility of multiple >>> bundles? >>> >>> >>> >>> On Sun, Nov 8, 2015 at 1:06 PM, Jean-Baptiste Onofré <[email protected]> >>> wrote: >>>> Hi Benson, >>>> >>>> don't you have multiple bundle providing the same package ? >>>> I suspect two bundles providing com.sun.el package (or the system package). >>>> >>>> What's the Karaf version (and framework in use) ? >>>> >>>> Regards >>>> JB >>>> >>>> >>>> On 11/08/2015 07:04 PM, Benson Margulies wrote: >>>>> >>>>> I'm getting a ClassNotFoundException trying to use bean validation. >>>>> >>>>> karaf@root>package:exports | grep com.sun.el >>>>> com.sun.el | 2.2.4 >>>>> | 174 | org.glassfish.web.javax.el >>>>> >>>>> But: >>>>> >>>>> karaf@root> bundle:find-class com.sun.el.ExpressionFactoryImpl >>>>> karaf@root> >>>>> >>>>> even though the class is sitting right there in the jar file for that >>>>> bundle. >>>>> >>>>> karaf@root>bundle:classes 174 | grep Expr >>>>> com/sun/el/ExpressionFactoryImpl.class >>>>> >>>>> what's up? >>>>> >>>> >>>> -- >>>> Jean-Baptiste Onofré >>>> [email protected] >>>> http://blog.nanthrax.net >>>> Talend - http://www.talend.com
