14

我使用 Struts2,我的应用程序有数千个由 Spring 管理的动作类。我之前使用过 Spring 2.5.6,我的应用程序启动很快。但是当我将 Spring 更改为 3.0. 我的Tomcat启动非常缓慢。对于每个动作类,我从 Spring 中得到以下调试消息:

DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.List 

几乎每个动作类的每个方法都在上面打印了这样的消息。这就是为什么应用程序要花这么多时间来启动的原因。

以下是我的 spring xml 的快照,供您参考。

<aop:config proxy-target-class="true"/> <!-- No matter true of false, the problem remains -->
<context:component-scan base-package="com.mycom" scoped-proxy="targetClass"/>

让我附加来自 Spring 的完整调试消息,显示创建 bean 的进度:

2010-01-19 17:07:32,786 [main] DEBUG (DefaultSingletonBeanRegistry.java:214) - Creating shared instance of singleton bean 'CL04001Action'
2010-01-19 17:07:32,786 [main] DEBUG (AbstractAutowireCapableBeanFactory.java:424) - Creating instance of bean 'CL04001Action'
2010-01-19 17:07:32,787 [main] DEBUG (AbstractAutowireCapableBeanFactory.java:498) - Eagerly caching bean 'CL04001Action' to allow for resolving potential circular references
2010-01-19 17:07:32,787 [main] DEBUG (Cglib2AopProxy.java:150) - Creating CGLIB2 proxy: target source is SimpleBeanTargetSource for target bean 'scopedTarget.CL04001Action' of type [com.mycom.action.cl.CL04001Action]
2010-01-19 17:07:32,790 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public com.mycom.action.cl.context.CL04001Context com.mycom.action.cl.CL04001Action.getContext()
2010-01-19 17:07:32,791 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.action.cl.CL04001Action.setContext(com.mycom.action.cl.context.CL04001Context)
2010-01-19 17:07:32,792 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.action.cl.CL04001Action.CL04001Main()
2010-01-19 17:07:32,792 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public int com.mycom.action.cl.CL04001Action.getCounter()
2010-01-19 17:07:32,792 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.action.cl.CL04001Action.setCounter(int)
2010-01-19 17:07:32,793 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.action.cl.CL04001Action.cl04001MainPage()
2010-01-19 17:07:32,793 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.action.cl.CL04001Action.cl04001Permit()
2010-01-19 17:07:32,793 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.action.cl.CL04001Action.cl04001PermitPage()
2010-01-19 17:07:32,794 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.action.cl.CL04001Action.cl03001Confirm() throws java.lang.Exception
2010-01-19 17:07:32,794 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.action.cl.CL04001Action.cl03001Refuse()
2010-01-19 17:07:32,794 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public com.mycom.model.cl.CL04001Model com.mycom.action.cl.CL04001Action.getModel()
2010-01-19 17:07:32,795 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.action.cl.CL04001Action.setModel(com.mycom.model.cl.CL04001Model)
2010-01-19 17:07:32,795 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: protected java.lang.Object com.mycom.core.struts2.action.DefaultEsoafAction.get(java.lang.String)
2010-01-19 17:07:32,795 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.core.struts2.action.DefaultEsoafAction.getLanguage()
2010-01-19 17:07:32,796 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: protected void com.mycom.core.struts2.action.DefaultEsoafAction.set(java.lang.String,java.lang.Object)
2010-01-19 17:07:32,796 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.core.struts2.action.DefaultEsoafAction.getCountry()
2010-01-19 17:07:32,797 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.core.struts2.action.DefaultEsoafAction.getSessionId()
2010-01-19 17:07:32,797 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public com.mycom.core.context.AppContext com.mycom.core.struts2.action.DefaultEsoafAction.getAppContext()
2010-01-19 17:07:32,797 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.core.struts2.action.DefaultEsoafAction.loadMessage(java.lang.String,java.lang.String[])
2010-01-19 17:07:32,798 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.core.struts2.action.DefaultEsoafAction.loadMessage(java.lang.String)
2010-01-19 17:07:32,798 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public com.mycom.core.context.SystemInfo com.mycom.core.struts2.action.DefaultEsoafAction.getSystemInfo()
2010-01-19 17:07:32,798 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setSystemInfo(com.mycom.core.context.SystemInfo)
2010-01-19 17:07:32,799 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setAppContext(com.mycom.core.context.AppContext)
2010-01-19 17:07:32,807 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: protected void com.mycom.core.struts2.action.DefaultEsoafAction.setGlobalSession(java.lang.String,java.lang.Object)
2010-01-19 17:07:32,807 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: protected java.lang.Object com.mycom.core.struts2.action.DefaultEsoafAction.getGlobalSession(java.lang.String)
2010-01-19 17:07:32,812 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.handleEsoafException(com.mycom.core.exception.DefaultEsoafException,com.mycom.core.struts2.action.DefaultEsoafAction$EType,java.lang.String) throws java.lang.RuntimeException
2010-01-19 17:07:32,813 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.handleEsoafException(com.mycom.core.exception.DefaultEsoafException)
2010-01-19 17:07:32,813 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setCountry(java.lang.String)
2010-01-19 17:07:32,814 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.core.struts2.action.DefaultEsoafAction.getSessionTimeoutDuration()
2010-01-19 17:07:32,814 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setJson(java.lang.String)
2010-01-19 17:07:32,815 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public com.mycom.core.model.GeneralModel com.mycom.core.struts2.action.DefaultEsoafAction.getGeneralModel()
2010-01-19 17:07:32,816 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setInit(boolean)
2010-01-19 17:07:32,817 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: protected java.util.Map com.mycom.core.struts2.action.DefaultEsoafAction.initTransacitonSession()
2010-01-19 17:07:32,818 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setInvalidateSession(boolean)
2010-01-19 17:07:32,818 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public boolean com.mycom.core.struts2.action.DefaultEsoafAction.getInvalidSession()
2010-01-19 17:07:32,819 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.mycom.core.struts2.action.DefaultEsoafAction.getJson()
2010-01-19 17:07:32,820 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.changeLocale()
2010-01-19 17:07:32,821 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setGeneralModel(com.mycom.core.model.GeneralModel)
2010-01-19 17:07:32,822 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.mycom.core.struts2.action.DefaultEsoafAction.setLanguage(java.lang.String)
2010-01-19 17:07:32,823 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.List com.mycom.core.struts2.action.DefaultEsoafAction.buildPageList(int)
2010-01-19 17:07:32,828 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public com.mycom.core.struts2.interceptor.Category com.mycom.core.struts2.action.DefaultEsoafAction.getCatetory()
2010-01-19 17:07:32,829 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.Object com.opensymphony.xwork2.ActionSupport.clone() throws java.lang.CloneNotSupportedException
2010-01-19 17:07:32,830 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.validate()
2010-01-19 17:07:32,831 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.execute() throws java.lang.Exception
2010-01-19 17:07:32,845 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.pause(java.lang.String)
2010-01-19 17:07:32,846 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.Locale com.opensymphony.xwork2.ActionSupport.getLocale()
2010-01-19 17:07:32,846 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.input() throws java.lang.Exception
2010-01-19 17:07:32,847 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.addActionError(java.lang.String)
2010-01-19 17:07:33,251 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.setActionErrors(java.util.Collection)
2010-01-19 17:07:33,252 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.Collection com.opensymphony.xwork2.ActionSupport.getActionErrors()
2010-01-19 17:07:33,252 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.setActionMessages(java.util.Collection)
2010-01-19 17:07:33,252 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.Collection com.opensymphony.xwork2.ActionSupport.getActionMessages()
2010-01-19 17:07:33,253 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.Collection com.opensymphony.xwork2.ActionSupport.getErrorMessages()
2010-01-19 17:07:33,253 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.Map com.opensymphony.xwork2.ActionSupport.getErrors()
2010-01-19 17:07:33,253 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.setFieldErrors(java.util.Map)
2010-01-19 17:07:33,254 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.Map com.opensymphony.xwork2.ActionSupport.getFieldErrors()
2010-01-19 17:07:33,254 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public boolean com.opensymphony.xwork2.ActionSupport.hasKey(java.lang.String)
2010-01-19 17:07:33,254 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.lang.String[])
2010-01-19 17:07:33,255 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String)
2010-01-19 17:07:33,255 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.lang.String)
2010-01-19 17:07:33,255 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.lang.String,java.lang.String)
2010-01-19 17:07:33,256 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.util.List)
2010-01-19 17:07:33,256 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.lang.String,java.util.List)
2010-01-19 17:07:33,256 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.lang.String,java.lang.String[])
2010-01-19 17:07:33,257 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.lang.String,java.util.List,com.opensymphony.xwork2.util.ValueStack)
2010-01-19 17:07:33,257 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.getText(java.lang.String,java.lang.String,java.lang.String[],com.opensymphony.xwork2.util.ValueStack)
2010-01-19 17:07:33,258 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.ResourceBundle com.opensymphony.xwork2.ActionSupport.getTexts()
2010-01-19 17:07:33,258 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.util.ResourceBundle com.opensymphony.xwork2.ActionSupport.getTexts(java.lang.String)
2010-01-19 17:07:33,258 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.addActionMessage(java.lang.String)
2010-01-19 17:07:33,259 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.addFieldError(java.lang.String,java.lang.String)
2010-01-19 17:07:33,259 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String com.opensymphony.xwork2.ActionSupport.doDefault() throws java.lang.Exception
2010-01-19 17:07:33,259 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public boolean com.opensymphony.xwork2.ActionSupport.hasActionErrors()
2010-01-19 17:07:33,260 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public boolean com.opensymphony.xwork2.ActionSupport.hasActionMessages()
2010-01-19 17:07:33,260 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public boolean com.opensymphony.xwork2.ActionSupport.hasErrors()
2010-01-19 17:07:33,260 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public boolean com.opensymphony.xwork2.ActionSupport.hasFieldErrors()
2010-01-19 17:07:33,261 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.clearFieldErrors()
2010-01-19 17:07:33,261 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.clearActionErrors()
2010-01-19 17:07:33,261 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.clearMessages()
2010-01-19 17:07:33,262 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.clearErrors()
2010-01-19 17:07:33,262 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public void com.opensymphony.xwork2.ActionSupport.clearErrorsAndMessages()
2010-01-19 17:07:33,262 [main] DEBUG (Cglib2AopProxy.java:753) - Found finalize() method - using NO_OVERRIDE
2010-01-19 17:07:33,263 [main] DEBUG (Cglib2AopProxy.java:770) - Found 'hashCode' method: public native int java.lang.Object.hashCode()
2010-01-19 17:07:33,263 [main] DEBUG (Cglib2AopProxy.java:765) - Found 'equals' method: public boolean java.lang.Object.equals(java.lang.Object)
2010-01-19 17:07:33,263 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public java.lang.String java.lang.Object.toString()
2010-01-19 17:07:33,264 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public abstract java.lang.Object org.springframework.aop.scope.ScopedObject.getTargetObject()
2010-01-19 17:07:33,264 [main] DEBUG (Cglib2AopProxy.java:802) - Unable to apply any optimisations to advised method: public abstract void org.springframework.aop.scope.ScopedObject.removeFromScope()
2010-01-19 17:07:33,264 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract int org.springframework.aop.framework.Advised.indexOf(org.aopalliance.aop.Advice)
2010-01-19 17:07:33,265 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract int org.springframework.aop.framework.Advised.indexOf(org.springframework.aop.Advisor)
2010-01-19 17:07:33,265 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.isFrozen()
2010-01-19 17:07:33,265 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract org.springframework.aop.TargetSource org.springframework.aop.framework.Advised.getTargetSource()
2010-01-19 17:07:33,266 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.addAdvisor(org.springframework.aop.Advisor) throws org.springframework.aop.framework.AopConfigException
2010-01-19 17:07:33,266 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.addAdvisor(int,org.springframework.aop.Advisor) throws org.springframework.aop.framework.AopConfigException
2010-01-19 17:07:33,266 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.setTargetSource(org.springframework.aop.TargetSource)
2010-01-19 17:07:33,267 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.setPreFiltered(boolean)
2010-01-19 17:07:33,267 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.isProxyTargetClass()
2010-01-19 17:07:33,267 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.setExposeProxy(boolean)
2010-01-19 17:07:33,268 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.isExposeProxy()
2010-01-19 17:07:33,268 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.addAdvice(org.aopalliance.aop.Advice) throws org.springframework.aop.framework.AopConfigException
2010-01-19 17:07:33,268 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.addAdvice(int,org.aopalliance.aop.Advice) throws org.springframework.aop.framework.AopConfigException
2010-01-19 17:07:33,269 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.isPreFiltered()
2010-01-19 17:07:33,269 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract java.lang.Class[] org.springframework.aop.framework.Advised.getProxiedInterfaces()
2010-01-19 17:07:33,269 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.isInterfaceProxied(java.lang.Class)
2010-01-19 17:07:33,270 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract org.springframework.aop.Advisor[] org.springframework.aop.framework.Advised.getAdvisors()
2010-01-19 17:07:33,270 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract void org.springframework.aop.framework.Advised.removeAdvisor(int) throws org.springframework.aop.framework.AopConfigException
2010-01-19 17:07:33,270 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.removeAdvisor(org.springframework.aop.Advisor)
2010-01-19 17:07:33,271 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.replaceAdvisor(org.springframework.aop.Advisor,org.springframework.aop.Advisor) throws org.springframework.aop.framework.AopConfigException
2010-01-19 17:07:33,271 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract boolean org.springframework.aop.framework.Advised.removeAdvice(org.aopalliance.aop.Advice)
2010-01-19 17:07:33,271 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract java.lang.String org.springframework.aop.framework.Advised.toProxyConfigString()
2010-01-19 17:07:33,272 [main] DEBUG (Cglib2AopProxy.java:759) - Method is declared on Advised interface: public abstract java.lang.Class org.springframework.aop.TargetClassAware.getTargetClass()
2010-01-19 17:07:33,372 [main] DEBUG (AbstractBeanFactory.java:241) - Returning cached instance of singleton bean 'org.springframework.transaction.config.internalTransactionAdvisor'
2010-01-19 17:07:33,373 [main] DEBUG (AbstractAutowireCapableBeanFactory.java:452) - Finished creating instance of bean 'CL04001Action'
4

5 回答 5

2

从表面上看,它实际上看起来像是一个 AOPConfig 问题。你在使用任何方面吗?显然它试图拦截一个方法调用。

它直接抱怨 AOPConfig 异常,因此 AOP 方面肯定有一些事情发生。

要么是您通过使用 AOP 引入了错误,要么您没有正确升级到 Spring 3,并且 Spring 3 中内置的 AOP 使用存在问题,即您的配置有问题。

检查 Spring 配置并确保您已正确升级。

注意:看起来您在 Spring 中使用了自动装配,这意味着您的配置的某些部分可能无法根据 Spring 规则正确自动装配。

于 2010-02-05T05:43:52.303 回答
1

假设您不想建议调试日志中列出的任何方法,并根据您使用的日志记录框架,将您不感兴趣的包的日志级别更改为 INFO 或更高。

例如,如果您使用的是 LOG4J

log4j.logger.org.springframework=INFO

这将清理日志中的所有杂乱,从而提高启动性能

于 2010-02-01T22:51:18.307 回答
0

我在spring源码中找到了以下内容(可能不是spring 3,但还是同一个类和消息)

// Check to see if we have fixed interceptor to serve this method.
if (isStatic && isFrozen && fixedInterceptorMap.containsKey(key)) {
   ....
} else {
  logger.debug("Unable to apply any optimisations to advised " +
       "method " + method + " - using AOP_PROXY");
}

我不知道拦截器的“冻结”和“固定”是什么意思,但我认为忽略此消息是安全的,因为大多数建议似乎都是非冻结和非固定的。

更重要的是 - 这是一条调试消息。如果它是WARN或以上,它应该会打扰你。将配置更改为log4j不显示DEBUG并查看您的启动时间。也许问题出在其他地方。

于 2010-01-19T10:02:58.430 回答
0

尝试增加 tomcat 的堆大小。众所周知,Spring 3.0 比 2.X 使用更多内存

https://jira.springsource.org/browse/SPR-6775

于 2010-02-01T01:10:31.107 回答
-1

我从未使用过基于 CGI 的代理,但基于 JDK 的代理需要接口来执行 AOP。如果界面有问题,请尝试以下解决方案。

.

典型的 struts 动作类如下所示。请注意,它不实现任何接口。

public class MyAction extends Action {
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
              :
 }
}

.

要解决此问题,请创建一个execute()方法与 Struts Action 类中相同的接口。

public interface IAction {
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response);
}

.

在您的所有操作中实现此接口

public class MyAction extends Action implements IAction {
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
              :
 }
}
于 2010-01-25T22:53:14.383 回答