zhouyanming created WW-4694:
-------------------------------

             Summary: AnnotationWorkflowInterceptor doesn't works with spring 
proxied action
                 Key: WW-4694
                 URL: https://issues.apache.org/jira/browse/WW-4694
             Project: Struts 2
          Issue Type: Bug
          Components: Core
            Reporter: zhouyanming


{code:java}
    public String intercept(ActionInvocation invocation) throws Exception {
        final Object action = invocation.getAction();
        invocation.addPreResultListener(this);
        List<Method> methods = new 
ArrayList<>(AnnotationUtils.getAnnotatedMethods(action.getClass(), 
Before.class));
{code}
if action is annotated with @Transactional , 
AnnotationUtils.getAnnotatedMethods() will always return empty collection.
here is my quick fix 
{code:java}
        public static Collection<Method> getAnnotatedMethods(Class clazz, 
Class<? extends Annotation>... annotation){
                if( SpringProxy.class.isAssignableFrom(clazz) )
                        clazz = clazz.getSuperclass();
{code}
but it will add spring dependence, I hope there is an elegant way.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to