|
From: Alef A. <al...@jt...> - 2004-11-17 19:33:38
|
A user on the forum = (http://forum.springframework.org/viewtopic.php?t=3D2034&start=3D0&postda= ys=3D0&postorder=3Dasc&highlight=3D) noticed a backward compatibility = issue. I'm posting it here as well and have already replied on the = forum. It might be wise to include a known-poblems section on the website = somewhere. They are minor issues, but still I think it's good to let = people know if there is any issues. regards, Alef =20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D I had a txProxyTemplate bean defined in my applicationContext = configuration without the abstract=3D"true" attribute and things ran = fine with Spring 1.1.1. I upgraded to Spring 1.1.2 and get an = IllegalArgumentException stating that the template bean *must* have the = abstract=3D"true" attribute if it does not declare a 'target' property.=20 I went ahead and added it and it was not a big deal. I'm not saying that = the IllegalArgumentException thrown under this circumstance is bad, but = given the prior behavior, it would have been nicer if it simply logged a = warning since the new behavior does break backward compatibility.=20 Sanjiv=20 --------------------------------------------=20 org.springframework.beans.factory.BeanCreationException: Error creating = bean with name 'txProxyTemplate' defined in ServletContext resource = [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested = exception is java.lang.IllegalArgumentException: 'target' is required=20 java.lang.IllegalArgumentException: 'target' is required=20 at = org.springframework.transaction.interceptor.TransactionProxyFactoryBean.a= fterPropertiesSet(TransactionProxyFactoryBean.java:194)=20 at = org.springframework.beans.factory.support.AbstractAutowireCapableBeanFact= ory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:990)=20 at = org.springframework.beans.factory.support.AbstractAutowireCapableBeanFact= ory.createBean(AbstractAutowireCapableBeanFactory.java:275)=20 at = org.springframework.beans.factory.support.AbstractAutowireCapableBeanFact= ory.createBean(AbstractAutowireCapableBeanFactory.java:193)=20 at = org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Abs= tractBeanFactory.java:240)=20 at = org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Abs= tractBeanFactory.java:163)=20 at = org.springframework.beans.factory.support.AbstractBeanFactory.getType(Abs= tractBeanFactory.java:345)=20 at = org.springframework.beans.factory.support.DefaultListableBeanFactory.isBe= anTypeMatch(DefaultListableBeanFactory.java:193)=20 at = org.springframework.beans.factory.support.DefaultListableBeanFactory.getB= eansOfType(DefaultListableBeanFactory.java:157)=20 at = org.springframework.context.support.AbstractApplicationContext.getBeansOf= Type(AbstractApplicationContext.java:526)=20 at = net.sf.acegisecurity.util.FilterToBeanProxy.doInit(FilterToBeanProxy.java= :170)=20 at = net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.ja= va:102 |