[ https://issues.apache.org/jira/browse/CXF-5228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13747781#comment-13747781 ]
Sergey Beryozkin commented on CXF-5228: --------------------------------------- Hi Christian, thanks for reporting it, do you propose do use ProxyClassLoader in exception handler, instead of using current thread loader ? I don't recall exactly why I did try to use a context loader in the exception handler, it probably was useful in some cases (for CGLIB proxies may be, do not remember now)... May be we can have the exception handler use ProxyClassLoader with the user classloader and the classloader of the JAXRSClientFactoryBean and finally the context loader in case it can be different from the other two > Rest client reports interface not visible for service interface > --------------------------------------------------------------- > > Key: CXF-5228 > URL: https://issues.apache.org/jira/browse/CXF-5228 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 2.7.6 > Environment: OSGi > Reporter: Christian Schneider > Assignee: Christian Schneider > Fix For: 3.0.0, 2.7.7 > > > When using a rest client in blueprint in OSGi I get the following stacktrace: > Caused by: java.lang.IllegalArgumentException: interface > net.lr.tutorial.karaf.cxf.personservice.person.PersonService is not visible > from class loader > See this for the full trace: > https://gist.github.com/cschneider/6156833 > I debugged into it and found that the true execption is hidden. > It happens in > org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWithValues(Object...) > There is first tries to create the proxy using the classloader of the service > interface. > This fails as in the user classloader there is only the service interface but > the proxy is also create for the cxf Client interface. So it fails when > resolving cxf Client. > This exception is swallowed and the context classloader is used to create the > proxy. This classloader is not set so it reports the user service interface > is not visible. This is not the root of the problem though. > I fixed this by using a ProxyClassloader that contains the user classloader > and the classloader of the JAXRSClientFactoryBean. So it then finds user > classes as well as cxf classes. -- 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