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.&lt;clinit&gt;(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

Reply via email to