Spring AOP pointcut с одним определенным аргументом

Мне нужно создать аспект, который мне трудно описать, поэтому позвольте мне указать на идеи:

  • любой метод в пакете (или любой подпакет) com.xy ..
  • один аргумент метода является реализацией интерфейса javax.portlet.PortletRequest
  • в методе
  • может быть больше аргументов, они могут быть в любом порядке

I нужен pointcut и "обходной" совет с заданным PortletRequest

В настоящее время у меня есть smt like:

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


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

и появляется сообщение об ошибке:

ОШИБКА 10: 47: 27.159 [ContainerBackgroundProcessor [StandardEngine [Catalina]]] osweb .portlet.DispatcherPortlet - Ошибка инициализации контекста org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'org.springframework.web.servlet . mvc.HttpRequestHandlerAdapter ': инициализация bean-компонента завершилась неудачно; вложенное исключение - java.lang.IllegalArgumentException: w arning no match for this type name: PortletRequest [Xlint: invalidAbsoluteTypeName]

Любая помощь очень ценится

С уважением, Дэн

UPDATE метод, который я пытаюсь перехватить:

в открытый класс com.xyMainClass :

public String mainRender (модель модели, запрос RenderRequest) выбрасывает SystemException

в общедоступном классе com.xyasd.HelpClass :

public final void helpAction (запрос ActionRequest, ответ ActionResponse, модель модели)

Конечно, я хочу получить аргумент, реализующий PortletRequest, то есть RenderRequest из первого метода и ActionRequest из второй.

С уважением, Дэн

8
задан Queequeg 18 October 2011 в 14:00
поделиться