问题
Hi all I have an exception thrown when building application to be deployed in tomcat, and I am suspecting pom.xml is the source as I found in the net that dependencies are the responsible causes for this exception, anyhow, here is my stack trace:
GRAVE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'productWebService': Error setting property values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException:
Property 'serviceBeans' threw exception; nested exception is
java.lang.NoSuchMethodError:
org.springframework.util.ClassUtils.isCglibProxyClass(Ljava/lang/Class;)Z
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1361)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4701)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5204)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5199)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException:
Property 'serviceBeans' threw exception; nested exception is
java.lang.NoSuchMethodError:
org.springframework.util.ClassUtils.isCglibProxyClass(Ljava/lang/Class;)Z
at .....
13 mars 2014 08:56:27 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error listenerStart
13 mars 2014 08:56:27 org.apache.catalina.core.StandardContext startInternal
GRAVE: Erreur de démarrage du contexte [/WebApp] suite aux erreurs précédentes
13 mars 2014 08:56:27 org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
13 mars 2014 08:56:27 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
13 mars 2014 08:56:27 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
13 mars 2014 08:56:27 org.apache.catalina.startup.Catalina start
INFO: Server startup in 6330 ms
here is my pom.xml:
http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 net.ma.s2m WebApp war 1.0-SNAPSHOT WebApp Maven Webapp http://maven.apache.org
<properties>
<cxf.version>3.0.0-milestone2</cxf.version>
<org.springframework.version>3.0.5.RELEASE</org.springframework.version>
</properties>
<build>
<finalName>WebApp</finalName>
</build>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.0-RC1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
回答1:
Spring 3.0.5 does not have that method. Try upgrading your spring version. There could be some incompatibilities between the libraries.
回答2:
Most likely one of your jar files is calling the function which doesnt exist in the Spring 3.0.5
version that you use.
It also might be due to jar conflicts where an older jar file expects an older Spring version than 3.0.5
which isnt on your classpath too.
You can check your dependency tree through the command line to find about expected jar files as transitive dependencies by other jar files as well as to understand about conflicts.
mvn dependency:tree
回答3:
The latest Spring version (4.2.5) has also removed the above method.
See Unable to deploy the project in Apache tomcat with apache cxf
You have to either upgrade to Apache CXF to 3.0 or stick with an older Spring version (for example 4.1.5).
来源:https://stackoverflow.com/questions/22373751/bean-creation-throws-exception-at-the-build-time