Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
5.1.0.5
-
None
Description
Hi!
I am upgrading a Web application using Spring, Hibernate and Tapestry. The application was using the following versions:
- Hibernate: 3.2.6.ga.
- Spring: 2.5.6.
- Tapestry: 5.1.0.5.
Now I am trying to upgrade to:
- Hibernate: 3.5.1-Final.
- Spring: 3.0.2.RELEASE.
- Tapestry: 5.1.0.5 (same version of Tapestry as before, since it seems to be the more recent version available in the Maven Central Repository).
I manage the build with Maven. I will omit unnecessary details to be as clear as possible. My business layer tests (which make use of Hibernate and Spring) run successfully (in particular, dependency injection is working well). The problem is when I try to run the Web application. I have tried Jetty (through the Maven plugin) and Tomcat. In both cases, the error is the same:
java.lang.RuntimeException: Exception constructing service 'ApplicationContext': Error creating bean with name 'accountDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void es.udc.pojo.modelutil.dao.GenericDaoHibernate.setSessionFactory(org.hibernate.SessionFactory); nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.config.DependencyDescriptor.getAnnotations()[Ljava/lang/Object;
It seems that Spring dependency injection is not working property when using Tapestry, more precisely, tapestry-spring. In particular, it seems that tapestry-spring was expecting org.springframework.beans.factory.config.DependencyDescriptor.getAnnotations() to return Object[]. This has changed in Spring 3. Such a method now returns java.lang.annotation.Annotation[]. It is documented in http://static.springsource.org/spring/docs/upgrade/spring3/html/apas02.html#api-report-beans.factory (look for the first occurrence of "DependencyDescriptor"). May this be causing the error???
Bellow I show the list of jar's that go inside my WAR file (I think there is no incompatibilities):
antlr-2.7.6.jar
antlr-runtime-3.1.1.jar
aopalliance-1.0.jar
cglib-nodep-2.2.jar
commons-codec-1.3.jar
commons-collections-3.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
hibernate-annotations-3.5.1-Final.jar
hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.5.1-Final.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
log4j-1.2.14.jar
pojo-modelutil-1.2.0.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.2.jar
spring-aop-3.0.2.RELEASE.jar
spring-asm-3.0.2.RELEASE.jar
spring-beans-3.0.2.RELEASE.jar
spring-context-3.0.2.RELEASE.jar
spring-core-3.0.2.RELEASE.jar
spring-expression-3.0.2.RELEASE.jar
spring-jdbc-3.0.2.RELEASE.jar
spring-orm-3.0.2.RELEASE.jar
spring-test-3.0.2.RELEASE.jar
spring-tx-3.0.2.RELEASE.jar
spring-web-3.0.2.RELEASE.jar
stax-api-1.0.1.jar
stax2-api-3.0.1.jar
tapestry-core-5.1.0.5.jar
tapestry-ioc-5.1.0.5.jar
tapestry-spring-5.1.0.5.jar
tapestry5-annotations-5.1.0.5.jar
woodstox-core-asl-4.0.3.jar
xml-apis-1.0.b2.jar
Thanks in advance,
Fernando Bellas.