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

Hendy Irawan commented on CXF-2345:
-----------------------------------

Thank you so much Sergey for the confirmed fix.

I'll try if the following workaround will work for now:

public SubResource getSub() {
  return (SubResource)appCtx.getBean("subResource");
}

Since it's on topic, I'd like to ask:
1. what's the CXF recommended best practice of subresource with Spring+CXF? 
Java new with manual setters; Spring AOP lookup-method, Spring 
appCtx.getBean(), or Spring AOP with @Configurable ? or another technique?
2. what's really the difference between  @RolesAllowed in JAX-RS class and in 
JAX-RS method? Isn't annotating the class means the whole resource is 
"secured"? (i.e. I don't see a point in annotating all methods of a class with 
the same annotation)

> Returning AOP/CGLIB proxy as Subresource throws Fault "object is not an 
> instance of declaring class"
> ----------------------------------------------------------------------------------------------------
>
>                 Key: CXF-2345
>                 URL: https://issues.apache.org/jira/browse/CXF-2345
>             Project: CXF
>          Issue Type: Bug
>          Components: REST
>    Affects Versions: 2.2.2
>            Reporter: Hendy Irawan
>            Assignee: Sergey Beryozkin
>             Fix For: 2.2.3, 2.3
>
>
> Test case:
> RootResource.java :
> public class RootResource {
>   @Path("subresource")
>   public abstract SubResource getSubResource();
> }
> In spring-beans.xml:
> <bean class="RootResource">
>   <lookup-method name="getSubResource" bean="subResource" />
> </bean>
> <bean id="subResource" class="SubResource" />
> Then the AOP proxied SubResource:
> @RolesAllowed({"ROLE_USER"}) // activate Spring Security global method 
> annotations
> public class SubResource {
> }
> Getting the /subresource will throw exception:
> org.apache.cxf.interceptor.Fault: object is not an instance of declaring 
> class while invoking
> Tried this workaround but not working: Make SubResource implement an 
> interface then on RootResource.getSubResource() use interface as the return 
> type, not the class

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to