[
https://issues.apache.org/jira/browse/CXF-5059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13676889#comment-13676889
]
Bin Zhu commented on CXF-5059:
------------------------------
Hi Freeman,
Thanks for the information. I will try the cxf jar directly later.
But based on my understanding, it seems the this.getClass().getClassLoader()
will only get the classloader for current bundler and may not allow CXF to load
the classes defined in .war/META-INF/extensions.xml.
And in org.apache.cxf.catalog.OASISCatalogManager.loadContextCatalogs, there is
a similar usage to get classloader by
(Thread.currentThread().getContextClassLoader(). And there will be no problem
in my scenario.
Any thought why the .OASISCatalogManager.loadContextCatalogs get classloader in
this way but WSDLManagerImpl not?
Thanks.
> 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
> Fix For: 2.6.9
>
> 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