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)