You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Christian Lutz <Ch...@kreeloo.de> on 2016/03/15 12:09:12 UTC

javax/annotation/Priority is missing

Hello,
 
I tried to use the cxf feature "cxf-rs-security-cors" like descripted here http://cxf.apache.org/docs/jax-rs-cors.html
But the blueprint does fail with the following error:
 
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to initialize bean publicAPI
 at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:738)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:848)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[27:org.apache.aries.blueprint.core:1.5.0]
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45]
 at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:712)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:399)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:273)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:294)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:263)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:253)[27:org.apache.aries.blueprint.core:1.5.0]
 at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[37:org.apache.aries.util:1.1.1]
 at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[37:org.apache.aries.util:1.1.1]
 at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[37:org.apache.aries.util:1.1.1]
 at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[37:org.apache.aries.util:1.1.1]
 at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[37:org.apache.aries.util:1.1.1]
 at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$2.call(EquinoxEventPublisher.java:189)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1280)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1263)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.notifyEventHooksPrivileged(EquinoxEventPublisher.java:186)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:146)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:75)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:67)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:102)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.container.Module.publishEvent(Module.java:466)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.container.Module.start(Module.java:457)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:393)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:412)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1199)[7:org.apache.karaf.features.core:4.0.4]
 at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:840)[7:org.apache.karaf.features.core:4.0.4]
 at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089)[7:org.apache.karaf.features.core:4.0.4]
 at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985)[7:org.apache.karaf.features.core:4.0.4]
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45]
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45]
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45]
 at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
Caused by: java.lang.NoClassDefFoundError: javax/annotation/Priority
 at org.apache.cxf.jaxrs.utils.AnnotationUtils.getBindingPriority(AnnotationUtils.java:85)
 at org.apache.cxf.jaxrs.provider.ProviderFactory.getFilterPriority(ProviderFactory.java:1146)
 at org.apache.cxf.jaxrs.provider.ProviderFactory.mapInterceptorFilters(ProviderFactory.java:1122)
 at org.apache.cxf.jaxrs.provider.ServerProviderFactory.setProviders(ServerProviderFactory.java:244)
 at org.apache.cxf.jaxrs.provider.ProviderFactory.setUserProviders(ProviderFactory.java:701)
 at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.setupFactory(AbstractJAXRSFactoryBean.java:332)
 at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory(JAXRSServerFactoryBean.java:237)
 at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:182)
 at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.init(JAXRSServerFactoryBean.java:142)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_45]
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_45]
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_45]
 at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_45]
 at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)
 at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980)
 at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:736)
 ... 38 more
Caused by: java.lang.ClassNotFoundException: javax.annotation.Priority cannot be found by org.apache.cxf.cxf-rt-frontend-jaxrs_3.1.5
 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:382)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
 at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_45]
 ... 54 more
 
 
I don't understand where the problem is located because, if I check with the webconsole it looks like a dependencies are resolved.
 
org.apache.cxf.cxf-rt-rs-security-cors: Imported package:
 javax.annotation,version=1.2.0 from org.eclipse.osgi (0)
 javax.ws.rs.container,version=2.0.0 from org.apache.servicemix.specs.jsr339-api-2.0 (125)
 javax.ws.rs.core,version=2.0.0 from org.apache.servicemix.specs.jsr339-api-2.0 (125)
 org.apache.cxf.common.util,version=3.1.5 from org.apache.cxf.cxf-core (40)
 org.apache.cxf.interceptor,version=3.1.5 from org.apache.cxf.cxf-core (40)
 org.apache.cxf.jaxrs.impl,version=3.1.5 from org.apache.cxf.cxf-rt-frontend-jaxrs (53)
 org.apache.cxf.jaxrs.model,version=3.1.5 from org.apache.cxf.cxf-rt-frontend-jaxrs (53)
 org.apache.cxf.jaxrs.utils,version=3.1.5 from org.apache.cxf.cxf-rt-frontend-jaxrs (53)
 org.apache.cxf.message,version=3.1.5 from org.apache.cxf.cxf-core (40)
 org.apache.cxf.phase,version=3.1.5 from org.apache.cxf.cxf-core (40)
 
and
 
org.apache.cxf.cxf-rt-frontend-jaxrs: Imported package:
 javax.activation,version=1.1.0 from org.eclipse.osgi (0)
 javax.annotation,version=1.2.0 from org.eclipse.osgi (0)
 javax.security.auth,version=0.0.0 from org.eclipse.osgi (0)
 javax.security.auth.callback,version=0.0.0 from org.eclipse.osgi (0)
 javax.security.auth.login,version=0.0.0 from org.eclipse.osgi (0)
 javax.servlet,version=3.1.0 from javax.servlet-api (20)
 javax.servlet.descriptor,version=3.1.0 from javax.servlet-api (20)
 javax.servlet.http,version=3.1.0 from javax.servlet-api (20)
 javax.validation,version=1.1.0.Final from javax.validation.api (174)
 .....
 
So we are able to see that the javax.annotation dependency has been resolved by the org.eclipse.osgi bundle for org.apache.cxf.cxf-rt-rs-security-cors and org.apache.cxf.cxf-rt-frontend-jaxrs.
 
Now, I was wondering if maybe the class 'javax.annotation.Priority' itself is not in the package. So I had been under system/org/eclipse/birt/runtime/org.eclipse.osgi/... but within this plugin I didn't find any javax.annotation. Then I found the following entries within config.properties and I do guess this is how the org.eclipse.osgi is able to provide all these dependencies. How this is working I do have no idea. 
 
org.osgi.framework.system.packages.extra = \
    java_cup.runtime;version=2.7.2, \
    javax.activation;version=1.1, \
    javax.annotation.security;version=1.2, \
    javax.annotation.sql;version=1.2, \
    javax.annotation;version=1.2, \
    ......
 
But from here on I actually don't know what I can do to fix this problem. Everything looks fine for me. Any hints for me?
 
 Sincerely
Christian

PS I do use karaf 4.0.4 and cxf 3.1.5

Re: javax/annotation/Priority is missing

Posted by Christian Lutz <Ch...@kreeloo.de>.
Hello Micheal,

yes this fixed my problem. Is there a reason why this hasnt been fixed, already? Even I didnt find an issue for it. 

Christian. 

> Am 15.03.2016 um 17:31 schrieb Michael Täschner <m....@gmail.com>:
> 
> Hi Christian,
> 
> set javax.annotation to version 1.1 and it will resolve against the annotation-spec provided by cxf features. The container provided packages are not complete for JDK 1.8.
> 
> Ref: http://karaf.922171.n3.nabble.com/Platform-packages-export-issue-with-Java-8-and-javax-annotation-td4041567.html
> 
> Cheers,
> Michael
> 
> 2016-03-15 12:09 GMT+01:00 Christian Lutz <Ch...@kreeloo.de>:
>> Hello,
>>  
>> I tried to use the cxf feature "cxf-rs-security-cors" like descripted here http://cxf.apache.org/docs/jax-rs-cors.html
>> But the blueprint does fail with the following error:
>>  
>> org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to initialize bean publicAPI
>>  at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:738)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:848)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45]
>>  at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:712)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:399)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:273)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:294)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:263)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:253)[27:org.apache.aries.blueprint.core:1.5.0]
>>  at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[37:org.apache.aries.util:1.1.1]
>>  at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[37:org.apache.aries.util:1.1.1]
>>  at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[37:org.apache.aries.util:1.1.1]
>>  at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[37:org.apache.aries.util:1.1.1]
>>  at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[37:org.apache.aries.util:1.1.1]
>>  at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$2.call(EquinoxEventPublisher.java:189)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1280)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1263)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.notifyEventHooksPrivileged(EquinoxEventPublisher.java:186)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:146)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:75)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:67)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:102)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.container.Module.publishEvent(Module.java:466)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.container.Module.start(Module.java:457)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:393)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:412)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>>  at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1199)[7:org.apache.karaf.features.core:4.0.4]
>>  at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:840)[7:org.apache.karaf.features.core:4.0.4]
>>  at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089)[7:org.apache.karaf.features.core:4.0.4]
>>  at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985)[7:org.apache.karaf.features.core:4.0.4]
>>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45]
>>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45]
>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45]
>>  at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
>> Caused by: java.lang.NoClassDefFoundError: javax/annotation/Priority
>>  at org.apache.cxf.jaxrs.utils.AnnotationUtils.getBindingPriority(AnnotationUtils.java:85)
>>  at org.apache.cxf.jaxrs.provider.ProviderFactory.getFilterPriority(ProviderFactory.java:1146)
>>  at org.apache.cxf.jaxrs.provider.ProviderFactory.mapInterceptorFilters(ProviderFactory.java:1122)
>>  at org.apache.cxf.jaxrs.provider.ServerProviderFactory.setProviders(ServerProviderFactory.java:244)
>>  at org.apache.cxf.jaxrs.provider.ProviderFactory.setUserProviders(ProviderFactory.java:701)
>>  at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.setupFactory(AbstractJAXRSFactoryBean.java:332)
>>  at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory(JAXRSServerFactoryBean.java:237)
>>  at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:182)
>>  at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.init(JAXRSServerFactoryBean.java:142)
>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_45]
>>  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_45]
>>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_45]
>>  at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_45]
>>  at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)
>>  at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980)
>>  at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:736)
>>  ... 38 more
>> Caused by: java.lang.ClassNotFoundException: javax.annotation.Priority cannot be found by org.apache.cxf.cxf-rt-frontend-jaxrs_3.1.5
>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:382)
>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
>>  at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
>>  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_45]
>>  ... 54 more
>>  
>>  
>> I don't understand where the problem is located because, if I check with the webconsole it looks like a dependencies are resolved.
>>  
>> org.apache.cxf.cxf-rt-rs-security-cors: Imported package:
>>  javax.annotation,version=1.2.0 from org.eclipse.osgi (0)
>>  javax.ws.rs.container,version=2.0.0 from org.apache.servicemix.specs.jsr339-api-2.0 (125)
>>  javax.ws.rs.core,version=2.0.0 from org.apache.servicemix.specs.jsr339-api-2.0 (125)
>>  org.apache.cxf.common.util,version=3.1.5 from org.apache.cxf.cxf-core (40)
>>  org.apache.cxf.interceptor,version=3.1.5 from org.apache.cxf.cxf-core (40)
>>  org.apache.cxf.jaxrs.impl,version=3.1.5 from org.apache.cxf.cxf-rt-frontend-jaxrs (53)
>>  org.apache.cxf.jaxrs.model,version=3.1.5 from org.apache.cxf.cxf-rt-frontend-jaxrs (53)
>>  org.apache.cxf.jaxrs.utils,version=3.1.5 from org.apache.cxf.cxf-rt-frontend-jaxrs (53)
>>  org.apache.cxf.message,version=3.1.5 from org.apache.cxf.cxf-core (40)
>>  org.apache.cxf.phase,version=3.1.5 from org.apache.cxf.cxf-core (40)
>>  
>> and
>>  
>> org.apache.cxf.cxf-rt-frontend-jaxrs: Imported package:
>>  javax.activation,version=1.1.0 from org.eclipse.osgi (0)
>>  javax.annotation,version=1.2.0 from org.eclipse.osgi (0)
>>  javax.security.auth,version=0.0.0 from org.eclipse.osgi (0)
>>  javax.security.auth.callback,version=0.0.0 from org.eclipse.osgi (0)
>>  javax.security.auth.login,version=0.0.0 from org.eclipse.osgi (0)
>>  javax.servlet,version=3.1.0 from javax.servlet-api (20)
>>  javax.servlet.descriptor,version=3.1.0 from javax.servlet-api (20)
>>  javax.servlet.http,version=3.1.0 from javax.servlet-api (20)
>>  javax.validation,version=1.1.0.Final from javax.validation.api (174)
>>  .....
>>  
>> So we are able to see that the javax.annotation dependency has been resolved by the org.eclipse.osgi bundle for org.apache.cxf.cxf-rt-rs-security-cors and org.apache.cxf.cxf-rt-frontend-jaxrs.
>>  
>> Now, I was wondering if maybe the class 'javax.annotation.Priority' itself is not in the package. So I had been under system/org/eclipse/birt/runtime/org.eclipse.osgi/... but within this plugin I didn't find any javax.annotation. Then I found the following entries within config.properties and I do guess this is how the org.eclipse.osgi is able to provide all these dependencies. How this is working I do have no idea. 
>>  
>> org.osgi.framework.system.packages.extra = \
>>     java_cup.runtime;version=2.7.2, \
>>     javax.activation;version=1.1, \
>>     javax.annotation.security;version=1.2, \
>>     javax.annotation.sql;version=1.2, \
>>     javax.annotation;version=1.2, \
>>     ......
>>  
>> But from here on I actually don't know what I can do to fix this problem. Everything looks fine for me. Any hints for me?
>>  
>>  Sincerely
>> Christian
>> 
>> PS I do use karaf 4.0.4 and cxf 3.1.5
> 

Re: javax/annotation/Priority is missing

Posted by Michael Täschner <m....@gmail.com>.
Hi Christian,

set javax.annotation to version 1.1 and it will resolve against the
annotation-spec provided by cxf features. The container provided packages
are not complete for JDK 1.8.

Ref:
http://karaf.922171.n3.nabble.com/Platform-packages-export-issue-with-Java-8-and-javax-annotation-td4041567.html

Cheers,
Michael

2016-03-15 12:09 GMT+01:00 Christian Lutz <Ch...@kreeloo.de>:

> Hello,
>
> I tried to use the cxf feature "cxf-rs-security-cors" like descripted here
> http://cxf.apache.org/docs/jax-rs-cors.html
> But the blueprint does fail with the following error:
>
> org.osgi.service.blueprint.container.ComponentDefinitionException: Unable
> to initialize bean publicAPI
>  at
> org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:738)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:848)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[27:org.apache.aries.blueprint.core:1.5.0]
>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45]
>  at
> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:712)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:399)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:273)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:294)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:263)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:253)[27:org.apache.aries.blueprint.core:1.5.0]
>  at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[37:org.apache.aries.util:1.1.1]
>  at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[37:org.apache.aries.util:1.1.1]
>  at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[37:org.apache.aries.util:1.1.1]
>  at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[37:org.apache.aries.util:1.1.1]
>  at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[37:org.apache.aries.util:1.1.1]
>  at
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher$2.call(EquinoxEventPublisher.java:189)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1280)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1263)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.notifyEventHooksPrivileged(EquinoxEventPublisher.java:186)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:146)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:75)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:67)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:102)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.container.Module.publishEvent(Module.java:466)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.container.Module.start(Module.java:457)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:393)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:412)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
>  at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1199)[7:org.apache.karaf.features.core:4.0.4]
>  at
> org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:840)[7:org.apache.karaf.features.core:4.0.4]
>  at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089)[7:org.apache.karaf.features.core:4.0.4]
>  at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985)[7:org.apache.karaf.features.core:4.0.4]
>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45]
>  at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45]
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45]
>  at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
> Caused by: java.lang.NoClassDefFoundError: javax/annotation/Priority
>  at
> org.apache.cxf.jaxrs.utils.AnnotationUtils.getBindingPriority(AnnotationUtils.java:85)
>  at
> org.apache.cxf.jaxrs.provider.ProviderFactory.getFilterPriority(ProviderFactory.java:1146)
>  at
> org.apache.cxf.jaxrs.provider.ProviderFactory.mapInterceptorFilters(ProviderFactory.java:1122)
>  at
> org.apache.cxf.jaxrs.provider.ServerProviderFactory.setProviders(ServerProviderFactory.java:244)
>  at
> org.apache.cxf.jaxrs.provider.ProviderFactory.setUserProviders(ProviderFactory.java:701)
>  at
> org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.setupFactory(AbstractJAXRSFactoryBean.java:332)
>  at
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory(JAXRSServerFactoryBean.java:237)
>  at
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:182)
>  at
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.init(JAXRSServerFactoryBean.java:142)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_45]
>  at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_45]
>  at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_45]
>  at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_45]
>  at
> org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)
>  at
> org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980)
>  at
> org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:736)
>  ... 38 more
> Caused by: java.lang.ClassNotFoundException: javax.annotation.Priority
> cannot be found by org.apache.cxf.cxf-rt-frontend-jaxrs_3.1.5
>  at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:382)
>  at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
>  at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
>  at
> org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
>  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_45]
>  ... 54 more
>
>
> I don't understand where the problem is located because, if I check with
> the webconsole it looks like a dependencies are resolved.
>
> org.apache.cxf.cxf-rt-rs-security-cors: Imported package:
>  javax.annotation,version=1.2.0 from org.eclipse.osgi (0)
>  javax.ws.rs.container,version=2.0.0 from
> org.apache.servicemix.specs.jsr339-api-2.0 (125)
>  javax.ws.rs.core,version=2.0.0 from
> org.apache.servicemix.specs.jsr339-api-2.0 (125)
>  org.apache.cxf.common.util,version=3.1.5 from org.apache.cxf.cxf-core (40)
>  org.apache.cxf.interceptor,version=3.1.5 from org.apache.cxf.cxf-core (40)
>  org.apache.cxf.jaxrs.impl,version=3.1.5 from
> org.apache.cxf.cxf-rt-frontend-jaxrs (53)
>  org.apache.cxf.jaxrs.model,version=3.1.5 from
> org.apache.cxf.cxf-rt-frontend-jaxrs (53)
>  org.apache.cxf.jaxrs.utils,version=3.1.5 from
> org.apache.cxf.cxf-rt-frontend-jaxrs (53)
>  org.apache.cxf.message,version=3.1.5 from org.apache.cxf.cxf-core (40)
>  org.apache.cxf.phase,version=3.1.5 from org.apache.cxf.cxf-core (40)
>
> and
>
> org.apache.cxf.cxf-rt-frontend-jaxrs: Imported package:
>  javax.activation,version=1.1.0 from org.eclipse.osgi (0)
>  javax.annotation,version=1.2.0 from org.eclipse.osgi (0)
>  javax.security.auth,version=0.0.0 from org.eclipse.osgi (0)
>  javax.security.auth.callback,version=0.0.0 from org.eclipse.osgi (0)
>  javax.security.auth.login,version=0.0.0 from org.eclipse.osgi (0)
>  javax.servlet,version=3.1.0 from javax.servlet-api (20)
>  javax.servlet.descriptor,version=3.1.0 from javax.servlet-api (20)
>  javax.servlet.http,version=3.1.0 from javax.servlet-api (20)
>  javax.validation,version=1.1.0.Final from javax.validation.api (174)
>  .....
>
> So we are able to see that the javax.annotation dependency has been
> resolved by the org.eclipse.osgi bundle for
> org.apache.cxf.cxf-rt-rs-security-cors and
> org.apache.cxf.cxf-rt-frontend-jaxrs.
>
> Now, I was wondering if maybe the class 'javax.annotation.Priority' itself
> is not in the package. So I had been under
> system/org/eclipse/birt/runtime/org.eclipse.osgi/... but within this plugin
> I didn't find any javax.annotation. Then I found the following entries
> within config.properties and I do guess this is how the org.eclipse.osgi is
> able to provide all these dependencies. How this is working I do have no
> idea.
>
> org.osgi.framework.system.packages.extra = \
>     java_cup.runtime;version=2.7.2, \
>     javax.activation;version=1.1, \
>     javax.annotation.security;version=1.2, \
>     javax.annotation.sql;version=1.2, \
>     javax.annotation;version=1.2, \
>     ......
>
> But from here on I actually don't know what I can do to fix this problem.
> Everything looks fine for me. Any hints for me?
>
>  Sincerely
> Christian
>
> PS I do use karaf 4.0.4 and cxf 3.1.5
>