Ok, I see what is going wrong. Sun's jaxrs implementation is the last resort if there is no implementation of jaxrs in claspath. So my cxf configuration has problem to cuase this problem.
Rice On Thu, Jan 13, 2011 at 6:39 PM, Rice Yeh <[email protected]> wrote: > Hi, > I am trying to run my application on osgi environment. I get a > java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl. I > can solve this problem by adding com.sun.* to system packages. However, I > wonder why com.sun.ws.ext is reached? The following is the stack trace: > > g! log4j:WARN No appenders could be found for logger > (org.hibernate.cfg.Environment). > log4j:WARN Please initialize the log4j system properly. > ERROR: Error starting file:bundles/xs-personnel.web_1.5.0.SNAPSHOT.jar > (org.osgi.framework.BundleException: Activator start error in bundle > xs-personnel.web [10].) > java.lang.ExceptionInInitializerError > at org.apache.cxf.jaxrs.utils.JAXRSUtils.<clinit>(JAXRSUtils.java:104) > at > org.apache.cxf.jaxrs.model.ClassResourceInfo.getConsumeMime(ClassResourceInfo.java:239) > at > org.apache.cxf.jaxrs.model.OperationResourceInfo.checkMediaTypes(OperationResourceInfo.java:167) > at > org.apache.cxf.jaxrs.model.OperationResourceInfo.<init>(OperationResourceInfo.java:74) > at > org.apache.cxf.jaxrs.utils.ResourceUtils.createOperationInfo(ResourceUtils.java:337) > at > org.apache.cxf.jaxrs.utils.ResourceUtils.evaluateResourceClass(ResourceUtils.java:214) > at > org.apache.cxf.jaxrs.utils.ResourceUtils.createClassResourceInfo(ResourceUtils.java:200) > at > org.apache.cxf.jaxrs.JAXRSServiceFactoryBean.createResourceInfo(JAXRSServiceFactoryBean.java:186) > at > org.apache.cxf.jaxrs.JAXRSServiceFactoryBean.setResourceClasses(JAXRSServiceFactoryBean.java:150) > at > org.apache.cxf.jaxrs.JAXRSServiceFactoryBean.setResourceClasses(JAXRSServiceFactoryBean.java:195) > at > org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setResourceClasses(JAXRSServerFactoryBean.java:171) > at xs.personnel.Activator.start(Activator.java:41) > at > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:633) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:1862) > at org.apache.felix.framework.Felix.startBundle(Felix.java:1779) > at > org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1188) > at > org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: > com.sun.ws.rs.ext.RuntimeDelegateImpl > at > javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:122) > at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:91) > at javax.ws.rs.core.MediaType.<clinit>(MediaType.java:44) > ... 18 more > Caused by: java.lang.ClassNotFoundException: > com.sun.ws.rs.ext.RuntimeDelegateImpl > at > org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:772) > at org.apache.felix.framework.ModuleImpl.access$200(ModuleImpl.java:73) > at > org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1685) > at java.lang.ClassLoader.loadClass(ClassLoader.java:252) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:169) > at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:62) > at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:155) > at > javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:105) > ... 20 more > > > Rice >
