我正在运行mvn clean test
maven 3.3.9
java 1.8.0_45
testng 6.8.5
我的春天版本是4.0。 4.RELEASE
但得到以下错误。
[ERROR] springTestContextPrepareTestInstance(com.inn.app17apr02.db.TestAuditDb) 经过的时间:1.205秒<<<失败! java.lang.IllegalStateException: 无法加载ApplicationContext引起: org.springframework.beans.factory.BeanCreationException:错误 在文件中定义名为'entityManagerFactory'的bean [/home/ist/apache-tomcat-7.0.59/webapps/REPO/app17apr02/app17apr02/1.0/app17apr02/target/classes/applicationContext/application.xml]: 调用init方法失败;嵌套异常是 java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax /持久/索引;引起: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax /持久/索引;
我经常搜索并尝试过不同的组合和排列,但仍然没有成功。 以下是我在pom中的插件条目
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
</property>
<property>
<name>testname</name>
<value>${project.name} TestNG tests reports</value>
</property>
</properties>
<systemProperties>
<property>
<name>org.uncommons.reportng.title</name>
<value>${project.name} TestNG Report</value>
</property>
<property>
<name>org.uncommons.reportng.stylesheet</name>
<value>/home/ist/apache-tomcat-7.0.59/webapps/REPO/app17apr02/app17apr02/1.0/app17apr02/headstart/artifacts/custom.css</value>
</property>
<property>
<name>org.uncommons.reportng.coverage-report</name>
<value>https://www.google.co.in</value>
</property>
</systemProperties>
<workingDirectory>target/</workingDirectory>
<reportsDirectory>/home/ist/apache-tomcat-7.0.59/webapps/REPO/app17apr02/app17apr02/1.0/app17apr02/headstart/sartifacts/surefire-reports</reportsDirectory>
<classpathDependencyExcludes>
<classpathDependencyExclude>org.apache.tika:tika-app</classpathDependencyExclude>
</classpathDependencyExcludes>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
</dependencies>
</plugin>
如果需要更多信息,请与我们联系。 我尝试过使用不同的JAP 2.x罐子,因为SO上的许多答案都说它是JPA jar的问题,并尝试了不同的可靠版本,如2.18.x,2.19.x. 任何帮助将不胜感激。
答案 0 :(得分:1)
表#index()方法已在2.1版中添加,因此您使用的jar是正确的。 在classpath中可能还添加了一些其他jar,它也有@Table注释,例如persistence-api-1.0.jar或其他一些jar。检查您的课程路径并删除/排除这些罐子。
您可能需要hibernate-entitymanager依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.0.Final</version>
<scope>runtime</scope>
</dependency>