Spring AOP coupe transverse (pointcut) avec un argument

J'ai besoin de créer un aspect que je trouve difficile à décrire, alors permettez-moi de souligner les idées:

  • tout méthode à l'intérieur de l'emballage (ou tout sous-paquetage) de com.x.y...
  • un argument de méthode est une implémentation d'une interface javax.portlet.PortletRequest
  • il peut m'en plus des arguments dans la méthode
  • ils peuvent être dans n'importe quel ordre

J'ai besoin d'une coupe transverse (pointcut) et un "autour" des conseils avec la PortletRequest donné

Actuellement, j'ai smt comme:

@Pointcut("execution(* com.x.y..*.*(PortletRequest,..)) && args(request,..)")
public void thePointcut(PortletRequest request) {
}


@Around("thePointcut(request)")
    public Object theAdvice(ProceedingJoinPoint joinPoint, PortletRequest request) {
...

et un message d'erreur:

ERREUR 10:47:27.159 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] o.s.web.portlet.DispatcherPortlet - Contexte
échec de l'initialisation de
org.springframework.les haricots.usine.BeanCreationException: Erreur lors de la création de haricots avec le nom " org.springframework.web.servlet.
mvc.HttpRequestHandlerAdapter': Initialisation du bean n'a pas; nested exception java.lang.IllegalArgumentException: w
arning pas de match pour ce type nom: PortletRequest [Xlint:invalidAbsoluteTypeName]

Toute aide très appréciée

Salutations,
Dan

Mise à JOUR
la méthode que je suis en train d'essayer d'intercepter est:

dans public class com.x.y.MainClass :

public String mainRender(Model model, RenderRequest request) throws SystemException

dans public class com.x.y.tsa.HelpClass:

public final void helpAction(ActionRequest request, ActionResponse response, Model model)

De cource, je veux trouver l'argument qui implémente PortletRequest, c'est-à RenderRequest de la première méthode, et ActionRequest à partir de la deuxième.

Ce qui concerne,
Dan

avez-vous été en mesure d'atteindre cet.Je suis en train de impllement la même pouvez-vous m'aider? @Queequeg

OriginalL'auteur Queequeg | 2011-10-18