2016-04-19 3 views
0

Je suis débutant au printemps AOP. Mon exigence est de se connecter avant méthode invokeTestServer execution.Please trouver mon code ci-dessous:Comment écrire le printemps AOP pour jax-rs

application context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:oxm="http://www.springframework.org/schema/oxm" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation=" 
         http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd 
         http://www.springframework.org/schema/mvc 
         http://www.springframework.org/schema/mvc/spring-mvc.xsd 
         http://www.springframework.org/schema/util 
         http://www.springframework.org/schema/util/spring-util.xsd 
         http://www.springframework.org/schema/context 
         http://www.springframework.org/schema/context/spring-context.xsd 
         http://www.springframework.org/schema/aop 
         http://www.springframework.org/schema/aop/spring-aop.xsd 
         http://www.springframework.org/schema/oxm 
         http://www.springframework.org/schema/oxm/spring-oxm.xsd 
         http://www.springframework.org/schema/tx 
         http://www.springframework.org/schema/tx/spring-tx.xsd"> 

    <aop:aspectj-autoproxy expose-proxy="true" /> 

    <context:component-scan base-package="mypackage.service" /> 

    <bean id="loggingAspect" class="mypackage.spring.InputAcceptorAspect" /> 

</beans> 

Comme essaie d'intégrer AOP avec JAX-RS je n'ont pas de haricots spécifiques pour être initialisé

s'il vous plaît trouverez ci-dessous mon composant

package mypackage.service; 

@Component 
public class FirstProcess { 

    public Response invokeTestServer() throws TestServerException{ 
      //Logic 
     return response; 
    } 
} 

mon aspect est comme ci-dessous package mypackage.spring;

@Aspect

public class InputAcceptorAspect { 

    @Before("execution(*mypackage.service.invokeTestServer(..))") 
    public void logBeforeInvokingTestServer(JoinPoint joinpoint){ 
     logger.error("TestServer got invoked"); 
     System.out.println("TestServer got invoked"); 
    } 
} 

Et essaie de tester avec ci-dessous classe principale

package mypackage.spring; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

import mypackage.service.FirstProcess; 

    public class TestAOP { 

     public static void main(String args[]) 
     { 
      ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml"); 
      FirstProcess manager = context.getBean(FirstProcess.class); 
      manager.invokeTestServer(); 
     } 
    } 

Pendant l'exécution de ce qui précède je reçois une exception n'a pas pu créer FirstProcess de haricot défini dans le fichier ..

Toute aide serait appréciée.

Répondre

0

Dans la classe FirstProcess.java, vous essayez de créer un bean avec des annotations, mais la configuration d'annotation n'est pas présente dans la configuration. Ajouter cette balise dans le fichier application-context.xml pour la création du bean en utilisant la config d'annotation

+0

pouvez-vous fournir la balise s'il vous plaît – cmahi

+0

La balise ajoutée n'est pas visible à l'intérieur de la réponse ci-dessus, c'est la balise obligatoire Dileep