1st 创建bean logService,注入dao2nd 声明LogInterceptor为bean,注入logService3rd 在拦截的方法中调用logService的方法存日志

解决方案 »

  1.   

    这样配置调用action方法是就进行拦截呢??
      

  2.   


    <bean id="log" class="cn.com.utt.util.log.LogInterceptor">
    </bean>

    <aop:config>  
            <!-- 声明一个切入点。 -->  
            <aop:aspect id="myAspect" ref="log">  
                <aop:pointcut id="apointcut"  
                    expression="execution(* cn.com.utt.action.AdminAction.*(..))" />  
                <aop:before method="before" pointcut-ref="apointcut" />  
            </aop:aspect>  
        </aop:config>这样可以么??
      

  3.   

    蛋疼,你web.xml中没加spring监听器?
      

  4.   


    <context-param>
      <param-name>contextConfigLocation</param-name> 
      <param-value>classpath:beans.xml</param-value> 
     </context-param>加这个可以么。。我的是放在src文件下面的
      

  5.   

    哪位大大有spring AOP 拦截 struts2的Action进行日志记录的简单示例的话。。是否可以发给偶学习学习。。邮箱 [email protected] 
      

  6.   


    <context-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath*:beans.xml</param-value>
    </context-param>
    <listener>
    <listener-class>
          org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener>src文件夹下的所有包都被配置进去
      

  7.   

    蛋疼,监听
    <!-- spring start -->
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    classpath:config/spring/dataAccessApplication.xml
    </param-value>
    </context-param>
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
    <listener-class>
    org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    <!-- spring end -->
      

  8.   

    java.lang.NullPointerException
    cn.com.utt.action.AdminAction.logout(AdminAction.java:42)
    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)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
      

  9.   


    package cn.com.utt.action;import javax.annotation.Resource;import org.junit.Test;import cn.com.utt.dao.EquipstatusDao;
    import cn.com.utt.exception.AccessException;
    import cn.com.utt.pojo.Equipstatus;import com.opensymphony.xwork2.ActionSupport;/** action */
    public class AdminAction extends ActionSupport{

    @Resource EquipstatusDao equipstatusDao;
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * Test method for {@link cn.com.utt.dao.impl.EquipstatusDaoImpl#addEquipstatus()}.
     * @throws AccessException 
     */
    @Test
    public String logout() throws AccessException{
    Equipstatus equipstatus = new Equipstatus();
    equipstatus.setCpuusage((byte) 23);
    equipstatus.setMemusage((byte) 50);
    equipstatus.setArpcount(50000);
    equipstatus.setNatsessioncount(46884);
    equipstatus.setNatusercount(455);
    equipstatus.setMacusercount(466);
    equipstatus.setMsgsn(122356L);
    equipstatus.setMsginterval((short) 10);
    equipstatus.setSerialnum("9000001");
    equipstatus.setModel("Hiper3300");
    equipstatus.setRevision("v2008");
    equipstatus.setUptime(62000L); equipstatusDao.addStatus(equipstatus, 1L, 0);

    System.out.println("调用action1");
    return "index";
    }
    public String logout1(){
    System.out.println("调用action");
    return "index1";
    }
    }