[ https://issues.apache.org/jira/browse/CXF-5059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13677862#comment-13677862 ]
Daniel Kulp commented on CXF-5059: ---------------------------------- Freeman and Bin, Actually, both usecases should likely use the classloader from the bus (bus.getExtension(ClassLoader.class)) if there is one, otherwise fall back to the TCCL. In OSGi, if using blueprint, the TCCL is likely null or not set to the applications classloader. If using Spring, it may be set, but in other cases, it may not be. That said, I would suggest not using extensions.xml thing at all. I'm strongly considering removing it for 3.0 as nothing within CXF uses it anymore. It also doesn't work well in OSGi anyway. To work correctly in OSGi, there would need to be a bundle listener or something that check all the loaded bundles for those files (like we do for the bus-extensions.xml). My suggestion is to create a bean that WSDLExtensionLoader which registers things it needs to register. Stick that bean in the bus-extensions.txt. > Refine classloader in org.apache.cxf.wsdl11.WSDLManagerImpl > ----------------------------------------------------------- > > Key: CXF-5059 > URL: https://issues.apache.org/jira/browse/CXF-5059 > Project: CXF > Issue Type: Bug > Affects Versions: 2.6.2, 2.6.8 > Reporter: Bin Zhu > Assignee: Freeman Fang > Fix For: 2.5.11, 2.6.9, 2.7.6, 3.0.0 > > Attachments: CXF-5059.patch > > > I was packaging the CXF jars(e.g.cxf-rt-core-2.6.2.jar ) into a OSGi bundle > then use it to create web service. In my scenario, it is found that if there > are respect binding resources defined in the .war/META-INF/extensions.xml, it > will not be properly loaded and will caused the "Unknown wsdl binding > extension" error. > After investigation, it's found that in the > org.apache.cxf.wsdl11.WSDLManagerImpl.registerInitialXmlExtensions()method, > the classloader is got by the following line: > initialExtensions = > PropertiesLoaderUtils.loadAllProperties(resource, > - this.getClass().getClassLoader()); > And caused the classes defined in .war/META-INF/extensions.xml was not > correctly loaded. > I checked the similar scenario in > org.apache.cxf.catalog.OASISCatalogManager.loadContextCatalogs and found it > get classload like this: > loadCatalogs(Thread.currentThread().getContextClassLoader(), name); > So I tried to refine the classloader in WSDLManagerImpl like this and now it > works in my test. Could someone help review this patch? Thanks in advance. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira