[ https://issues.apache.org/jira/browse/CXF-5228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13749969#comment-13749969 ]
Sergey Beryozkin commented on CXF-5228: --------------------------------------- This is clever, cool :-) > 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