Java NoSuchMethodError:RegisterAutoProxyCreator是Spring4、Hibernate4和Maven 3所必需的
我试图配置Hibernate和Spring,但无法解决此错误:Java NoSuchMethodError:RegisterAutoProxyCreator是Spring4、Hibernate4和Maven 3所必需的,java,spring,hibernate,maven,Java,Spring,Hibernate,Maven,我试图配置Hibernate和Spring,但无法解决此错误:java.lang.NoSuchMethodError:org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary 我尝试了一些解决办法,但没有成功。我需要你的帮助 我遵循了本教程: 以下是一些信息: Stacktrace Nov 23, 2014 6:16:55 PM org.springframework.context.
java.lang.NoSuchMethodError:org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary
我尝试了一些解决办法,但没有成功。我需要你的帮助
我遵循了本教程:
以下是一些信息:
Stacktrace
Nov 23, 2014 6:16:55 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@13f17c9e: startup date [Sun Nov 23 18:16:55 EST 2014]; root of context hierarchy
Nov 23, 2014 6:16:55 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [spring-config.xml]
Nov 23, 2014 6:16:56 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [hibernate-config.xml]
Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:hibernate-config.xml]
Offending resource: class path resource [spring-config.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [hibernate-config.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(Lorg/springframework/beans/factory/xml/ParserContext;Ljava/lang/Object;)V
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:235)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:186)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:171)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:144)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:100)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:510)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
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.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at ca.etsmtl.log720.lab3.AppMain.main(AppMain.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [hibernate-config.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(Lorg/springframework/beans/factory/xml/ParserContext;Ljava/lang/Object;)V
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:414)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
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.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:229)
... 25 more
Caused by: java.lang.NoSuchMethodError: org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(Lorg/springframework/beans/factory/xml/ParserContext;Ljava/lang/Object;)V
at org.springframework.transaction.config.AnnotationDrivenBeanDefinitionParser.parseInternal(AnnotationDrivenBeanDefinitionParser.java:54)
at org.springframework.beans.factory.xml.AbstractBeanDefinitionParser.parse(AbstractBeanDefinitionParser.java:60)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1427)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1417)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:174)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:144)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:100)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:510)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
... 30 more
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ equipe07-log720-A14-lab3 ---
[INFO] ca.etsmtl.log720.lab3:equipe07-log720-A14-lab3:war:1.0-SNAPSHOT
[INFO] +- postgresql:postgresql:jar:9.1-901.jdbc4:compile
[INFO] +- org.springframework:spring-core:jar:4.1.2.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] +- org.springframework:spring-context:jar:4.1.2.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:4.1.2.RELEASE:compile
[INFO] | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | +- org.springframework:spring-beans:jar:4.1.2.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-tx:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-orm:jar:4.1.2.RELEASE:compile
[INFO] | \- org.springframework:spring-jdbc:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-web:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.2.RELEASE:compile
[INFO] +- org.hibernate:hibernate-core:jar:4.3.7.Final:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.1.3.GA:compile
[INFO] | +- org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1:compile
[INFO] | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.0.0.Final:compile
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] | +- org.hibernate.common:hibernate-commons-annotations:jar:4.0.5.Final:compile
[INFO] | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] | +- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] | +- antlr:antlr:jar:2.7.7:compile
[INFO] | \- org.jboss:jandex:jar:1.1.0.Final:compile
[INFO] \- org.hibernate:hibernate-entitymanager:jar:4.3.7.Final:compile
我正在尝试运行以下命令:
AppMain.java
package ca.etsmtl.log720.lab3;
import ca.etsmtl.log720.lab3.model.Dossier;
import ca.etsmtl.log720.lab3.service.DossierService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class AppMain {
public static void main(String args[]) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
DossierService service = (DossierService) context.getBean("dossierService");
/*
* Get all employees list from database
*/
List<Dossier> dossiers = service.findAll();
for (Dossier dossier : dossiers) {
System.out.println(dossier);
}
}
}
包ca.etsmtl.log720.lab3;
导入ca.etsmtl.log720.lab3.model.docsier;
导入ca.etsmtl.log720.lab3.service.DossierService;
导入org.springframework.context.ApplicationContext;
导入org.springframework.context.support.ClassPathXmlApplicationContext;
导入java.util.List;
公共类AppMain{
公共静态void main(字符串参数[]){
ApplicationContext上下文=新的ClassPathXmlApplicationContext(“spring config.xml”);
DossierService=(DossierService)context.getBean(“DossierService”);
/*
*从数据库中获取所有员工列表
*/
列表档案=service.findAll();
用于(档案:档案){
系统输出打印(档案);
}
}
}
如果需要更多的代码,请询问 我用这个问题解决了我的问题:
我的spring-context-4.1.xsd文件在Java安装的jre/lib中使用了一个.jar。org.springframework.transaction.config的堆栈跟踪点第54行。AnnotationDrivenBeanDefinitionParser,但是Spring 4.1.2()的源代码表示该行没有可执行代码。这向我表明,您的服务器不知何故正在使用旧版本的Spring。检查WAR文件,确保其中没有不应该存在的内容。我在终端中运行了
mvn exec:java-Dexec.mainClass=“ca.etsmtl.log720.lab3.AppMain”
,它工作了。因此,是我的IntelliJ配置不好。我用Maven设置了它,但它使用了其他配置。。。谢谢,它解决了我的问题。
<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>ca.etsmtl.log720.lab3</groupId>
<artifactId>equipe07-log720-A14-lab3</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>equipe07-log720-A14-lab3 Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring.version>4.1.2.RELEASE</spring.version>
<hibernate.version>4.3.7.Final</hibernate.version>
</properties>
<build>
<finalName>equipe07-log720-A14-lab3</finalName>
</build>
<dependencies>
<!-- PostgreSQL -->
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
<!-- Spring Framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
</dependencies>
</project>
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ equipe07-log720-A14-lab3 ---
[INFO] ca.etsmtl.log720.lab3:equipe07-log720-A14-lab3:war:1.0-SNAPSHOT
[INFO] +- postgresql:postgresql:jar:9.1-901.jdbc4:compile
[INFO] +- org.springframework:spring-core:jar:4.1.2.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] +- org.springframework:spring-context:jar:4.1.2.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:4.1.2.RELEASE:compile
[INFO] | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | +- org.springframework:spring-beans:jar:4.1.2.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-tx:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-orm:jar:4.1.2.RELEASE:compile
[INFO] | \- org.springframework:spring-jdbc:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-web:jar:4.1.2.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.2.RELEASE:compile
[INFO] +- org.hibernate:hibernate-core:jar:4.3.7.Final:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.1.3.GA:compile
[INFO] | +- org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1:compile
[INFO] | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.0.0.Final:compile
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] | +- org.hibernate.common:hibernate-commons-annotations:jar:4.0.5.Final:compile
[INFO] | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] | +- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] | +- antlr:antlr:jar:2.7.7:compile
[INFO] | \- org.jboss:jandex:jar:1.1.0.Final:compile
[INFO] \- org.hibernate:hibernate-entitymanager:jar:4.3.7.Final:compile
package ca.etsmtl.log720.lab3;
import ca.etsmtl.log720.lab3.model.Dossier;
import ca.etsmtl.log720.lab3.service.DossierService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class AppMain {
public static void main(String args[]) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
DossierService service = (DossierService) context.getBean("dossierService");
/*
* Get all employees list from database
*/
List<Dossier> dossiers = service.findAll();
for (Dossier dossier : dossiers) {
System.out.println(dossier);
}
}
}