In case anyone is curious this has been solved by removing @Transactional
annotations from all action class methods and moving them on to the methods
on the DAOs.

The presence of the annotation on the action class was resulting in a
JDKDynamicProxy object being passed to the AnnotationValidationInterceptor.
This didn't have the expected @SkipValidation annotation or even the
expected methods on it. By moving the @Transaction annotation off the action
class the AnnotationValidationInterceptor is dealing with the actual
instance of my action with all of the expected annotations and methods.

I'm not sure why the presence of the @Transactional annotations on the
action class caused this problem but it seems to have been solved by moving
them.

Cheers,
Alex

On 29 April 2011 21:09, Alex Barnes <a...@barnes-home.com> wrote:

> Chris,
>
> Thanks for the reply. I think this is the ValidationInterceptor rather than
> the workflow interceptor. The stack trace is as follows:
>
> *ava.lang.NullPointerException*
>
>     
> com.devcentre.yubi.application.action.NewSupplierAction.validate(NewSupplierAction.java:49)
>     sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     java.lang.reflect.Method.invoke(Method.java:597)
>     
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
>     
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
>     $Proxy26.validate(Unknown Source)
>     
> com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:249)
>     
> com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:261)
>     
> org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
>
>
> The AnnotationValidationInterceptor extends ValidationInterceptor. The
> reason I think it is related to issues with the Action Proxy is that I first
> noticed this when I created a new action and then the
> AnnotationValidationInterceptor couldn't even find the action method I had
> defined on my action. I then come back and tested this action and found that
> the validate() method was not being called when the execute() method was
> invoked when it wasn't before.
>
> I had all of this working a few days ago. I've spent so long trying to work
> out what is wrong that I have a headache :(
>
> Alex
>
>
>
>
> On 29 Apr 2011, at 20:45, Chris Pratt wrote:
>
> execute
>
>
>

Reply via email to