<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-112  評論-73  文章-0  trackbacks-0
    寫了一個aop的例子.用測試跑和在TOMCAT下跑都沒有問題.唯獨到glassfihs下面運行就出錯.

    Caused by: org.springframework.aop.aspectj.AspectJAdviceParameterNameDiscoverer$AmbiguousBindingException: Still 3 unbound args at this(),target(),args() binding stage, with no way to determine between them

    這個錯誤沒怎么看明白,誰能給解釋一下.

    下面是代碼.
    @Aspect
    public class InventoryMatchingAspect {

        private Cache cache;

        public void setCache(Cache cache) {
            this.cache = cache;
        }

        @Pointcut("execution(public * cn.xiangyunsoft.publicinfo.service.IInventoryService.matchingOne(..)) && args(str)")
        public void service(String str) {
        }

        @Around("service(str) && target(obj) && this(proxy)")
        public Object aroundAspect(ProceedingJoinPoint pjp, String str, Object obj,
                Object proxy) {
            try {
                String key = getCacheKey(str);
                Element element = cache.get(key);
                if (element == null) {
                    Logger.debug(key + ",not in cache, load from database.");
                    Object o = pjp.proceed();
                    if (o != null) {
                        element = new Element(key, o);
                        cache.put(element);
                    }
                }
                return element.getValue();
            } catch (Throwable e) {
                Logger.error(getClass(), "查詢存貨是出錯");
                e.printStackTrace();
            }
            return null;
        }

        private String getCacheKey(String inventoryId) {
            return Inventory.class.getName() + "_" + inventoryId;
        }



        <aop:aspectj-autoproxy />
        <bean id="inventoryMatchingAspect"
            class="cn.xiangyunsoft.publicinfo.aspect.InventoryMatchingAspect">
            <property name="cache" ref="ehCache" />
        </bean>


    下面是詳細的錯誤:
    Caused by: org.springframework.aop.aspectj.AspectJAdviceParameterNameDiscoverer$AmbiguousBindingException: Still 3 unbound args at this(),target(),args() binding stage, with no way to determine between them
        at org.springframework.aop.aspectj.AspectJAdviceParameterNameDiscoverer.maybeBindThisOrTargetOrArgsFromPointcutExpression(AspectJAdviceParameterNameDiscoverer.java:535)
        at org.springframework.aop.aspectj.AspectJAdviceParameterNameDiscoverer.getParameterNames(AspectJAdviceParameterNameDiscoverer.java:279)
        at org.springframework.core.PrioritizedParameterNameDiscoverer.getParameterNames(PrioritizedParameterNameDiscoverer.java:54)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.bindArgumentsByName(AbstractAspectJAdvice.java:373)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.calculateArgumentBindings(AbstractAspectJAdvice.java:344)
        at org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory.getAdvice(ReflectiveAspectJAdvisorFactory.java:219)
        at org.springframework.aop.aspectj.annotation.InstantiationModelAwarePointcutAdvisorImpl.instantiateAdvice(InstantiationModelAwarePointcutAdvisorImpl.java:145)
        at org.springframework.aop.aspectj.annotation.InstantiationModelAwarePointcutAdvisorImpl.<init>(InstantiationModelAwarePointcutAdvisorImpl.java:94)
        at org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory.getAdvisor(ReflectiveAspectJAdvisorFactory.java:135)
        at org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory$1.doWith(ReflectiveAspectJAdvisorFactory.java:75)
        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:193)
        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:170)
        at org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory.getAdvisors(ReflectiveAspectJAdvisorFactory.java:71)
        at org.springframework.aop.aspectj.annotation.BeanFactoryAspectJAdvisorsBuilder.buildAspectJAdvisors(BeanFactoryAspectJAdvisorsBuilder.java:111)
        at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:85)
        at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:83)
        at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:66)
        at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:296)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:315)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1181)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:428)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:247)
        at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:796)
        at org.springframework.context.support.AbstractApplicationContext.registerListeners(AbstractApplicationContext.java:592)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:349)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4523)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5184)
        at com.sun.enterprise.web.WebModule.start(WebModule.java:326)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:973)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:957)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:688)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1584)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1222)
        at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182)
        at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278)
        at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:974)
        at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:961)
        at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:464)
        at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:176)
        at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
        at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:226)
        at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
        at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
        at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:591)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:635)
        at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:744)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:375)
        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:358)
        at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:464)
        at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
        at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
        at $Proxy1.invoke(Unknown Source)
        at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
        at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
        at com.sun.enterprise.deployment.client.DeploymentClientUtils.startApplication(DeploymentClientUtils.java:145)
        at com.sun.enterprise.deployment.client.DeployAction.run(DeployAction.java:537)
        at java.lang.Thread.run(Thread.java:595)


    posted on 2008-04-07 23:04 Libo 閱讀(1080) 評論(1)  編輯  收藏

    評論:
    # re: spring 2.0 aop 在glassfish下面報錯 2008-04-08 13:35 | Libo
    問題解決:
    將切入點和裝備這樣寫就可以了.
    @Pointcut("execution(public * cn.xiangyunsoft.publicinfo.service.IInventoryService.matchingOne(..))")
    public void service() {
    }

    @Around("service() && args(str)")
    public Object aroundAspect(ProceedingJoinPoint pjp, String str) {

    真不知道為什么...
    現(xiàn)在已經(jīng)升級為spring2.5.3了在2.0下不知道怎么樣.
      回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久A级毛片免费观看| 欧洲精品码一区二区三区免费看| 亚洲综合色自拍一区| 亚洲人成电影在线播放| 亚洲国产婷婷六月丁香| 久久精品国产精品亚洲艾| 久久久久久亚洲精品影院| 欧美激情综合亚洲一二区| 三级毛片在线免费观看| 91久久精品国产免费一区| 久久亚洲伊人中字综合精品| 亚洲免费综合色在线视频| 一级毛片a女人刺激视频免费| 99re这里有免费视频精品| 天天摸天天碰成人免费视频| 亚洲第一永久AV网站久久精品男人的天堂AV| 久久久无码精品亚洲日韩蜜桃 | 亚洲精品人成在线观看| 亚洲人成电影网站免费| 日韩毛片免费在线观看| 亚洲国产精品久久久久| 亚洲人成免费电影| 亚洲精品tv久久久久| 一个人看的www视频免费在线观看| 在线亚洲精品自拍| 伊人久久免费视频| 亚洲视频人成在线播放| 亚洲精品乱码久久久久久蜜桃图片| 久久这里只精品99re免费| 亚洲男人的天堂一区二区| 人妻免费一区二区三区最新| 午夜国产大片免费观看| 亚洲视频无码高清在线| 国产无遮挡色视频免费视频| 亚洲欧美一区二区三区日产| 亚洲精品无码久久不卡| 亚洲精品视频在线观看免费| 亚洲av永久无码精品网站 | 亚洲欧美中文日韩视频| 亚洲中文字幕久久精品无码APP | 一本天堂ⅴ无码亚洲道久久|