[ https://issues.apache.org/jira/browse/CXF-3949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162880#comment-13162880 ]
Sergey Beryozkin commented on CXF-3949: --------------------------------------- I updated the cxf-jaxrs bundle only to drop the resolution=optional. Metatech, I guess we should document what needs to be done in case of the DOSGi multibundle distribution (which depends on cxf-minimal bundle); if you could experiment with setting up the start-up levels then it would be great. Cheers, Sergey > NoClassDefFoundError when using CXF JAX-RS in OSGi environment > -------------------------------------------------------------- > > Key: CXF-3949 > URL: https://issues.apache.org/jira/browse/CXF-3949 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 2.3.2 > Environment: ServiceMix 4.3 > Reporter: metatech > Original Estimate: 8h > Remaining Estimate: 8h > > When using the CXF JAX-RS implementation in an OSGi environment, the CXF > implementation might fail to initialize properly. > The problem is non-consistently reproduceable, but more likely to occur on > machines with high parallelism (due to several cores/threads). > The CXF bundle ("org.apache.cxf.bundle") has a dependency on the JSR 311 API > JAR ("org.apache.servicemix.specs.jsr311-api-1.1"). > But the dependency is marked as "resolution=optional" in the OSGi headers of > the CXF bundle manifest. > As a result, if the JSR-311 bundle is not yet fully started when the CXF > bundle is started, OSGi does not "wire" these packages into the imports of > the CXF bundle: > javax.ws.rs > javax.ws.rs.core > javax.ws.rs.ext > The error is the following : > java.lang.NoClassDefFoundError: Could not initialize class > org.apache.cxf.jaxrs.utils.JAXRSUtils > See similar error DOSGI-1 > I guess that these packages are marked as optional because CXF can be used in > an environment where no JAX-RS is available, and it works fine as long as the > application does not use this API. However, when an application is known to > use the API, the dependency marked as "optional" is not correct. > Long-term solution : split CXF bundle into smaller bundles (like Jetty). > Workaround : edit the manifest of the CXF bundle, and remove the > "resolution=optional" for the packages which are known to be used by the > application. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira