Spring Maven dependency issue during JUNIT -
i'm struggling junit code, i'm using spring 3.2.3, when use spring 3.0.2 working fine. question same spring junit test error in example had said use transitive dependency(which don't understand is). understood answer exclude older version of jars(resolved depenedency). when verified dependency hierarchy find dependency has resolved version 3.2.3 , there no older version of dependencies
my pom.xml is
<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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>org.company</groupid> <artifactid>artifact</artifactid> <version>0.0.1-snapshot</version> <packaging>jar</packaging> <name>artifact</name> <url>http://maven.apache.org</url> <properties> <org.springframework.version>3.2.3.release</org.springframework.version> <project.build.sourceencoding>utf-8</project.build.sourceencoding> </properties> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.8.1</version> <scope>test</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-aop</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-beans</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context-support</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-expression</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-jdbc</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-orm</artifactid> <version>${org.springframework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-oxm</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-test</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-tx</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc-portlet</artifactid> <version>${org.springframework.version}</version> <scope>provided</scope> </dependency> </dependencies> <build> <resources> <resource> <filtering>true</filtering> <directory>src/test/resources</directory> <includes> <include>**/*.properties</include> </includes> <excludes> <exclude>**/*local.properties</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> </resources> <testresources> <testresource> <directory>src/test/java</directory> <includes> <include>**/*</include> </includes> <excludes> <exclude>**/*.java</exclude> </excludes> </testresource> <testresource> <directory>src/test/resources</directory> <includes> <include>**/*</include> </includes> </testresource> </testresources> <plugins> <plugin> <artifactid>maven-compiler-plugin</artifactid> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <artifactid>maven-war-plugin</artifactid> <version>2.3</version> <configuration> <warsourcedirectory>webcontent</warsourcedirectory> <failonmissingwebxml>false</failonmissingwebxml> </configuration> </plugin> </plugins> </build> </project>
and stack trace is.
java.lang.nosuchmethoderror: org.springframework.beans.beanutils.instantiateclass(ljava/lang/class;ljava/lang/class;)ljava/lang/object; @ org.springframework.test.context.contextloaderutils.resolvecontextloader(contextloaderutils.java:118) @ org.springframework.test.context.contextloaderutils.buildmergedcontextconfiguration(contextloaderutils.java:594) @ org.springframework.test.context.contextloaderutils.buildmergedcontextconfiguration(contextloaderutils.java:560) @ org.springframework.test.context.testcontext.<init>(testcontext.java:99) @ org.springframework.test.context.testcontextmanager.<init>(testcontextmanager.java:117) @ org.springframework.test.context.junit4.springjunit4classrunner.createtestcontextmanager(springjunit4classrunner.java:119) @ org.springframework.test.context.junit4.springjunit4classrunner.<init>(springjunit4classrunner.java:108) @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(unknown source) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(unknown source) @ java.lang.reflect.constructor.newinstance(unknown source) @ org.junit.internal.builders.annotatedbuilder.buildrunner(annotatedbuilder.java:31) @ org.junit.internal.builders.annotatedbuilder.runnerforclass(annotatedbuilder.java:24) @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:57) @ org.junit.internal.builders.alldefaultpossibilitiesbuilder.runnerforclass(alldefaultpossibilitiesbuilder.java:29) @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:57) @ org.junit.internal.requests.classrequest.getrunner(classrequest.java:24) @ org.eclipse.jdt.internal.junit4.runner.junit4testreference.<init>(junit4testreference.java:33) @ org.eclipse.jdt.internal.junit4.runner.junit4testclassreference.<init>(junit4testclassreference.java:25) @ org.eclipse.jdt.internal.junit4.runner.junit4testloader.createtest(junit4testloader.java:48) @ org.eclipse.jdt.internal.junit4.runner.junit4testloader.loadtests(junit4testloader.java:38) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:452) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:683) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.run(remotetestrunner.java:390) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.main(remotetestrunner.java:197)
as novice guy maven, can me out need do
my junit example class is
@runwith(springjunit4classrunner.class) @contextconfiguration("classpath*:spring-config.xml") public class helloworldtest { @autowired public helloworld hello1; @test public void sayhellotest(){ hello1.printhello(); } }
i solved issue checking whats dependencies related spring earlier version of version of spring using.
for example, using version 3.2.4 of spring , in dependencies found spring-beans , spring-expression version 3.0.4. did add these 2 pom.xml dependencies version of spring using. in case added
<dependency> <groupid> org.springframework </ groupid> <artifactid> spring-beans </ artifactid> <version> ${spring.version} </ version> </ dependency> <dependency> <groupid> org.springframework </ groupid> <artifactid> spring-expression </ artifactid> <version> $ {spring.version} </ version> </ dependency>
and worked.
Comments
Post a Comment