java.lang.InkompatibleClassChangeError: Die Klasse org.springframework.core.type.classreading.ClassMetadataReadingVisitor hat die Schnittstelle org.springframework.asm.ClassVisitor als Superklasse

Warum wird eine java.lang.InkompatibleClassChangeError-Ausnahme ausgelöst?

Wenn Sie mit Spring MVC und Spring Data Neo4j arbeiten, besteht eine größere Wahrscheinlichkeit, dass die folgende Ausnahme auftritt, wenn Sie die Anwendung mit einem der Java EE-Container wie Apache ausführen. Ich habe Apache Tomcat 7.35 für die Bereitstellung einer PrimeFaces 5-Anwendung mit Spring MVC und Spring Neo4j unter Verwendung der folgenden Maven-POM-Datei verwendet. Beachten Sie, dass diese Ausnahme auch für einige andere Frameworks ausgelöst werden kann.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>next.javabeat.jsf</groupId>
	<artifactId>JavaBeat-Primefaces-SpringData-Neo4j</artifactId>
	<packaging>war</packaging>
	<version>1.0</version>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.7</java.version>
		<junit.version>4.9</junit.version>
		<slf4j.version>1.6.4</slf4j.version>
		<logback.version>1.0.1</logback.version>
		<log4j.version>1.2.14</log4j.version>

		<servlet.version>2.5</servlet.version>
		<jsp.version>2.1</jsp.version>
		<jstl.version>1.2</jstl.version>
		<taglibs-standard.version>1.1.2</taglibs-standard.version>

		<maven.compiler.plugin>2.3.2</maven.compiler.plugin>
		<maven.failsafe.plugin>2.4.3-alpha-1</maven.failsafe.plugin>

	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<repositories>
		<repository>
			<id>prime-repo</id>
			<name>PrimeFaces Maven Repository</name>
			<url>http://repository.primefaces.org</url>
			<layout>default</layout>
		</repository>
	</repositories>

	<dependencies>
		<!-- Servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>${servlet.version}</version>
			<scope>provided</scope>
		</dependency>
		<!-- Faces Implementation -->
		<dependency>
			<groupId>com.sun.faces</groupId>
			<artifactId>jsf-impl</artifactId>
			<version>2.2.4</version>
		</dependency>
		<!-- Faces Library -->
		<dependency>
			<groupId>com.sun.faces</groupId>
			<artifactId>jsf-api</artifactId>
			<version>2.2.4</version>
		</dependency>
		<!-- Primefaces Version 5 -->
		<dependency>
			<groupId>org.primefaces</groupId>
			<artifactId>primefaces</artifactId>
			<version>5.0.RC2</version>
		</dependency>
		<!-- JSP Library -->
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>2.3.1</version>
		</dependency>
		<!-- JSTL Library -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.1.2</version>
		</dependency>
		<!-- SLF4J dependency -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
			<version>1.0.0.GA</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<!-- Neo4j support for Spring Data -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-neo4j</artifactId>
			<version>2.3.5.RELEASE</version>
		</dependency>
		<!-- Advanced Mapping support for Spring Data Neo4j -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-neo4j-aspects</artifactId>
			<version>2.3.5.RELEASE</version>
		</dependency>
		<!-- Neo4j transaction library -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-neo4j-tx</artifactId>
			<version>2.3.5.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-neo4j-rest</artifactId>
			<version>2.3.5.RELEASE</version>
		</dependency>
		<!-- Google List Library -->
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>r09</version>
		</dependency>
		<!-- Dependency for REST Exporter -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-rest-webmvc</artifactId>
			<version>2.0.2.RELEASE</version>
		</dependency>
	</dependencies>

</project>

Durch die Bereitstellung dieser Anwendung erhalten Sie eine Ausnahme wie die folgende:

May 15, 2014 12:52:52 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_26\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.6.0_26\jre\bin;org.C:\Program Files (x86)\Common Files\NetSarang;D:\QTEL\Work\Oraclexe\app\oracle\product\10.2.0\server\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;D:\Maven\apache-maven-3.2.1\bin;D:\Ant\apache-ant-1.9.2\bin;jrockit_160_14_R27.6.5-32\bin;D:/php/php-5.5.8;D:\SpringRoo\spring-roo-1.2.5.RELEASE\bin;%HADOOP_PREFIX%\bin;C:\Python27;.
May 15, 2014 12:52:53 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: (SetPropertiesRule){Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JavaBeat-Primefaces-SpringData-Neo4j' did not find a matching property.
May 15, 2014 12:52:53 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ("http-bio-8080")
May 15, 2014 12:52:53 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ("ajp-bio-8009")
May 15, 2014 12:52:53 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 832 ms
May 15, 2014 12:52:53 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
May 15, 2014 12:52:53 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.35
May 15, 2014 12:52:59 AM org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "com.sun.faces.config.ConfigureListener" is already configured for this context. The duplicate definition has been ignored.
May 15, 2014 12:52:59 AM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
May 15, 2014 12:52:59 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
May 15, 2014 12:52:59 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file (D:\Krishna\EclipseLink\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JavaBeat-Primefaces-SpringData-Neo4j\WEB-INF\classes\net\javabeat\springdata\beans\RegistrationService.class); nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:301)
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)
	at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:85)
	at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1424)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1414)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:187)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:141)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:110)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:381)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:293)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	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:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:63)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:82)
	at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:277)
	... 33 more
May 15, 2014 12:52:59 AM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Mojarra 2.2.4 ( 20131003-1354 https://svn.java.net/svn/mojarra~svn/tags/2.2.4@12574) for context '/JavaBeat-Primefaces-Web'
May 15, 2014 12:53:00 AM com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods marked with these annotations will have said annotations processed.
May 15, 2014 12:53:01 AM org.primefaces.webapp.PostConstructApplicationEventListener processEvent
INFO: Running on PrimeFaces 5.0.RC2
May 15, 2014 12:53:01 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
May 15, 2014 12:53:01 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context (/JavaBeat-Primefaces-Web) startup failed due to previous errors
May 15, 2014 12:53:01 AM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
May 15, 2014 12:53:01 AM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
	at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:170)
	at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:921)
	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:895)
	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:841)
	at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:551)
	at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4837)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5484)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	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:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
May 15, 2014 12:53:01 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ("http-bio-8080")
May 15, 2014 12:53:01 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ("ajp-bio-8009")
May 15, 2014 12:53:01 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 8241 ms

Wenn Sie gerade diese Ausnahme bemerkt haben, die Ihnen sagt, dass es sich um eine Klasse handelt ClassMetadataReadingVisitor verursachend inkompatiblerClassChangeError. Der Grund dafür ist, dass keine Schnittstelle in der Spring-ASM-Bibliothek implementiert wird.

Problemlösung

Um das Problem zu untersuchen, müssen wir das Abhängigkeitsbaum-Tool verwenden, nämlich den Befehl mvn-Abhängigkeit:Baum wurde für die obige POM-Datei aufgerufen, was das folgende Ergebnis anzeigen würde:


D:\Krishna\EclipseLink\Workspace\JavaBeat-Primefaces-SpringData-Neo4j>mvn dependency:tree
Bad level value for property: .level
Bad level value for property: java.util.logging.ConsoleHandler.level
(INFO) Scanning for projects...
(INFO)
(INFO) Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
(INFO)
(INFO) ------------------------------------------------------------------------
(INFO) Building JavaBeat-Primefaces-SpringData-Neo4j 1.0
(INFO) ------------------------------------------------------------------------
(INFO)
(INFO) --- maven-dependency-plugin:2.8:tree (default-cli) @ JavaBeat-Primefaces-SpringData-Neo4j ---
(INFO) next.javabeat.jsf:JavaBeat-Primefaces-SpringData-Neo4j:war:1.0
(INFO) +- javax.servlet:servlet-api:jar:2.5:provided
(INFO) +- com.sun.faces:jsf-impl:jar:2.2.4:compile
(INFO) +- com.sun.faces:jsf-api:jar:2.2.4:compile
(INFO) +- org.primefaces:primefaces:jar:5.0.RC2:compile
(INFO) +- javax.servlet.jsp:javax.servlet.jsp-api:jar:2.3.1:compile
(INFO) +- javax.servlet:jstl:jar:1.1.2:compile
(INFO) +- org.slf4j:slf4j-log4j12:jar:1.6.1:compile
(INFO) |  +- org.slf4j:slf4j-api:jar:1.6.1:compile
(INFO) |  \- log4j:log4j:jar:1.2.16:compile
(INFO) +- org.springframework:spring-tx:jar:4.0.0.RELEASE:compile
(INFO) |  +- aopalliance:aopalliance:jar:1.0:compile
(INFO) |  \- org.springframework:spring-beans:jar:4.0.0.RELEASE:compile
(INFO) +- javax.validation:validation-api:jar:1.0.0.GA:compile
(INFO) +- org.springframework:spring-core:jar:4.0.0.RELEASE:compile
(INFO) |  \- commons-logging:commons-logging:jar:1.1.1:compile
(INFO) +- org.springframework:spring-webmvc:jar:4.0.0.RELEASE:compile
(INFO) |  +- org.springframework:spring-context:jar:4.0.0.RELEASE:compile
(INFO) |  +- org.springframework:spring-expression:jar:4.0.0.RELEASE:compile
(INFO) |  \- org.springframework:spring-web:jar:4.0.0.RELEASE:compile
(INFO) +- org.springframework.data:spring-data-neo4j:jar:2.3.5.RELEASE:compile
(INFO) |  +- org.springframework:spring-aspects:jar:3.1.4.RELEASE:compile
(INFO) |  |  \- org.springframework:spring-context-support:jar:3.1.4.RELEASE:compile
(INFO) |  +- org.aspectj:aspectjrt:jar:1.7.2:compile
(INFO) |  +- org.springframework.data:spring-data-commons:jar:1.6.5.RELEASE:compile
(INFO) |  +- org.neo4j:neo4j-cypher-dsl:jar:1.9:compile
(INFO) |  +- org.neo4j:neo4j:jar:1.9.3:compile
(INFO) |  |  +- org.neo4j:neo4j-lucene-index:jar:1.9.3:compile
(INFO) |  |  |  \- org.apache.lucene:lucene-core:jar:3.6.2:compile
(INFO) |  |  +- org.neo4j:neo4j-graph-algo:jar:1.9.3:compile
(INFO) |  |  +- org.neo4j:neo4j-udc:jar:1.9.3:compile
(INFO) |  |  +- org.neo4j:neo4j-graph-matching:jar:1.9.3:compile
(INFO) |  |  \- org.neo4j:neo4j-jmx:jar:1.9.3:compile
(INFO) |  +- org.neo4j:neo4j-cypher:jar:1.9.3:compile
(INFO) |  |  +- org.scala-lang:scala-library:jar:2.10.0:compile
(INFO) |  |  \- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.3.1:compile
(INFO) |  \- org.slf4j:jcl-over-slf4j:jar:1.7.1:runtime
(INFO) +- org.springframework.data:spring-data-neo4j-aspects:jar:2.3.5.RELEASE:compile
(INFO) |  +- org.springframework:spring-aop:jar:3.1.4.RELEASE:compile
(INFO) |  |  \- org.springframework:spring-asm:jar:3.1.4.RELEASE:compile
(INFO) |  +- org.neo4j:neo4j-kernel:jar:1.9.3:compile
(INFO) |  |  \- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
(INFO) |  \- cglib:cglib:jar:2.2.2:compile
(INFO) |     \- asm:asm:jar:3.3.1:compile
(INFO) +- org.springframework.data:spring-data-neo4j-tx:jar:2.3.5.RELEASE:compile
(INFO) +- org.springframework.data:spring-data-neo4j-rest:jar:2.3.5.RELEASE:compile
(INFO) |  +- org.neo4j:neo4j-rest-graphdb:jar:1.9:compile
(INFO) |  |  \- org.neo4j:server-api:jar:1.9:compile
(INFO) |  |     +- org.neo4j.3rdparty.javax.ws.rs:jsr311-api:jar:1.1.2.r612:compile
(INFO) |  |     +- commons-configuration:commons-configuration:jar:1.6:compile
(INFO) |  |     |  +- commons-collections:commons-collections:jar:3.2.1:compile
(INFO) |  |     |  +- commons-lang:commons-lang:jar:2.4:compile
(INFO) |  |     |  \- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile
(INFO) |  |     \- commons-digester:commons-digester:jar:1.8.1:compile
(INFO) |  |        \- commons-beanutils:commons-beanutils:jar:1.8.0:compile
(INFO) |  +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.7:compile
(INFO) |  |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.7:compile
(INFO) |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.7:compile
(INFO) |  \- com.sun.jersey:jersey-client:jar:1.4:compile
(INFO) |     \- com.sun.jersey:jersey-core:jar:1.4:compile
(INFO) +- com.google.guava:guava:jar:r09:compile
(INFO) \- org.springframework.data:spring-data-rest-webmvc:jar:2.0.2.RELEASE:compile
(INFO)    +- org.springframework.data:spring-data-rest-core:jar:2.0.2.RELEASE:compile
(INFO)    |  +- org.springframework.hateoas:spring-hateoas:jar:0.9.0.RELEASE:compile
(INFO)    |  |  \- org.objenesis:objenesis:jar:1.3:compile
(INFO)    |  +- org.springframework.plugin:spring-plugin-core:jar:1.0.0.RELEASE:compile
(INFO)    |  \- org.atteo:evo-inflector:jar:1.0.1:compile
(INFO)    \- com.fasterxml.jackson.core:jackson-databind:jar:2.3.1:compile
(INFO)       +- com.fasterxml.jackson.core:jackson-annotations:jar:2.3.0:compile
(INFO)       \- com.fasterxml.jackson.core:jackson-core:jar:2.3.1:compile
(INFO) ------------------------------------------------------------------------
(INFO) BUILD SUCCESS
(INFO) ------------------------------------------------------------------------
(INFO) Total time: 1.794 s
(INFO) Finished at: 2014-05-15T00:56:09+02:00
(INFO) Final Memory: 40M/64M
(INFO) ------------------------------------------------------------------------
D:\Krishna\EclipseLink\Workspace\JavaBeat-Primefaces-SpringData-Neo4j>

Die importierte Spring-ASM-Version ist org.springframework:spring-asm:jar:3.1.4.RELEASE:compile die als älter gelten als für die Spring Core-Bibliothek erforderlich. Das ist der Hauptgrund, warum diese Ausnahme ausgelöst wird.

Die Bibliothek, die diesen Fehler verursacht hat, ist:

(INFO) +- org.springframework.data:spring-data-neo4j-aspects:jar:2.3.5.RELEASE:compile
(INFO) |  +- org.springframework:spring-aop:jar:3.1.4.RELEASE:compile
(INFO) |  |  \- org.springframework:spring-asm:jar:3.1.4.RELEASE:compile

Schließen wir also den Spring-Asm durch die Verwendung von dieser Abhängigkeit aus Ausschlüsse Maven-Tag. Danach sollte die Datei pom.xml so aussehen

<dependency>
	<groupId>org.springframework.data</groupId>
	<artifactId>spring-data-neo4j-aspects</artifactId>
	<version>2.3.5.RELEASE</version>
	<exclusions>
		<exclusion>
			<groupId>org.springframework</groupId>
			<artifactId>spring-asm</artifactId>
		</exclusion>
	</exclusions>
</dependency>

Durch Ausschließen der alten Spring-ASM-Abhängigkeit die neue asm 3.3.1 Die Abhängigkeit sollte automatisch importiert werden und Ihre Anwendung sollte reibungslos laufen.

Wenn Sie in Ihrer Anwendung keine Bibliothek wie CGLIB hinzugefügt haben, die ASM 3.3.1 enthalten könnte, können Sie die folgende Abhängigkeit für Ihre pom.xml-Datei hinzufügen.

		<!-- Separate ASM Library -->
<dependency>
 <groupId>asm</groupId>
 <artifactId>asm-all</artifactId>
 <version>3.3.1</version>
</dependency>

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen