开发者

Slow to start after upgraded to Spring 3

I use Struts2 and my application has thousands of action classes managed by Spring. I used Spring 2.5.6 before and my application starts quickly. But when I changed Spring to 3.0. I got a extremely slow start up of Tomcat. For each action class, I got the following debug message from Spring:

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

Almost each method of each action class was printed such message above. It is the reason why application spent so many time to start up.

Below is a snapshot from my spring xml, for your reference.

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

Let me append the full debug message from Spring showing the progress of creating a 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'


On the surface it actually looks like an AOPConfig issue. Are you using any Aspects ? Obviously it is trying to intercept a method call.

It is complaining directly about and AOPConfig exception so there must be something going on with the AOP side of things.

Either you introduced the bug by using AOP or you have not upgraded to Spring 3 correctly and there are issues with the AOP useage built into Spring 3 ie your config is fishy.

Check the Spring configs and ensure you have upgraded correctly.

Note: it looks like you are using autowire in Spring, which means some part of your config might not be autowiring correctly according to the Spring rules.


Assuming that you are not intrested to advise any of the methods listed in your debug log and depending on which logging framework you use, change the log level of package you are not intrested in to INFO or higher.

For example if you are using LOG4J

log4j.logger.org.springframework=INFO

This will clean up all the clutter in your log and hence improve startup performance


Try increasing the heap size for tomcat. Spring 3.0 has been known to use more memory than 2.X

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


I found the following in the spring source (perhaps not spring 3, but still the same class and message)

// 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");
}

I'm not aware what "frozen" and "fixed" mean for interceptors, but I think it is safe to ignore this message, since most of the advices seem to be non-frozen and non-fixed.

More importantly - it is a debug message. It should bother you if it is WARN or above. Change the log4j configuration not to show DEBUG and see what's your startup time. Perhaps the problem is elsewhere.


I have never used CGI based proxies but JDK based proxies requires interface to do AOP. If interface is an issue, try below solution.

.

Typical struts action classes are as given below. Note that it does not implements any interface.

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

.

To resolve this issue, create an interface with execute() method same as that in Struts Action class.

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

.

Implement this interface in all of your actions

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜