[ 
https://issues.apache.org/jira/browse/CXF-3949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173020#comment-13173020
 ] 

metatech commented on CXF-3949:
-------------------------------

Freeman,
The problem is not really reproduceable.  It occurred only twice : 
1. on one of the 2 nodes on a large machine (similar to our production machine)
2. on a laptop under a debugging session, with breakpoints in SMX 
deploying/starting tasks (SpringOsgiExtenderThread, FelixStartLevel, Blueprint 
Extender, DirectoryWatcher, ...).  
This leads me to believe that this is really a narrow race condition that can 
occur under some very specific timings, which the "start-level" workaround does 
not allow to fix.


                
> 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.  Tip : replace "resolution" by "resolutio2", this tricks 
> prevents from changing the alignment of the 80-characters columns.
>  

--
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

        

Reply via email to