java - Problems running Spring with JUnit -
i having following when trying run simple test (no real assertions yet) using eclipse, spring , junit. here complains about:
java.lang.nosuchmethoderror: org.springframework.beans.beanutils.instantiateclass(ljava/lang/class;ljava/lang/class;)ljava/lang/object; i have found similar issue on stackoverflow here: spring junit test error
so, supposed problem due spring dependencies mismatch. however, doesn't seem work me. basically, if understand right link says solution is, declare explicitly version of spring dependencies on pom file, doing (i declaring dependencies have 3.1.x versions).
when @ ~/m2, can find these prior-to-3.1 dependencies installed, when remove them , run maven build again:
./spring-aop/3.0.4.release ./spring-aop/3.0.7.release ./spring-asm/3.0.4.release ./spring-asm/3.0.7.release ./spring-beans/3.0.4.release ./spring-beans/3.0.7.release ./spring-context/3.0.4.release ./spring-context/3.0.7.release ./spring-core/3.0.4.release ./spring-core/3.0.7.release ./spring-expression/3.0.4.release ./spring-expression/3.0.7.release ./spring-jdbc/3.0.7.release ./spring-parent/3.0.4.release ./spring-parent/3.0.7.release ./spring-tx/3.0.7.release ./spring-web/3.0.4.release ./spring-web/3.0.7.release i don't have these version numbers on pom file calling them. there way make sure these not installed? or, if need there because dependencies other deps, how can make sure test context doesnt use 3.1 instead?
this trying run:
import org.junit.test; import org.junit.runner.runwith; import org.springframework.beans.factory.annotation.autowired; import org.springframework.test.context.contextconfiguration; import org.springframework.test.context.junit4.springjunit4classrunner; import com.sample.persistence.manager.profilemanager; @runwith(springjunit4classrunner.class) @contextconfiguration(classes={ jpatestconfig.class, testconfig.class }) public class profilemanagertest { @autowired private profilemanager profilemanager; @test public void testcreateandretrieve() { } } pom.xml:
<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>com.sample</groupid> <artifactid>common</artifactid> <version>0.1-snapshot</version> <packaging>jar</packaging> <name>common</name> <parent> <groupid>com.sample</groupid> <artifactid>ws-parent</artifactid> <version>0.1-snapshot</version> <relativepath>..</relativepath> </parent> <properties> <spring.security.version>3.1.3.release</spring.security.version> <spring.framework.version>3.1.1.release</spring.framework.version> <hibernate.version>3.6.0.final</hibernate.version> <commons-dbcp.version>1.2.2</commons-dbcp.version> </properties> <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-aop</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-asm</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-beans</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-expression</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-jdbc</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-parent</artifactid> <version>3.1.1.release</version> <type>pom</type> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-tx</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-orm</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework.ws</groupid> <artifactid>spring-oxm-tiger</artifactid> <version>1.5.4</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-test</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-core</artifactid> <version>${spring.security.version}</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-web</artifactid> <version>${spring.security.version}</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-config</artifactid> <version>${spring.security.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context-support</artifactid> <version>${spring.framework.version}</version> </dependency> <dependency> <groupid>com.relayrides</groupid> <artifactid>pushy</artifactid> <version>0.1.1</version> </dependency> <dependency> <groupid>org.versly</groupid> <artifactid>versly-wsdoc</artifactid> <version>1.0-snapshot</version> <scope>compile</scope> </dependency> <dependency> <groupid>com.amazonaws</groupid> <artifactid>aws-java-sdk</artifactid> <version>1.4.2.1</version> </dependency> <!-- hibernate --> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-core</artifactid> <version>${hibernate.version}</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-ehcache</artifactid> <version>${hibernate.version}</version> </dependency> <!-- <dependency> <groupid>javax.persistence</groupid> <artifactid>persistence-api</artifactid> <version>${javax.persistence.version}</version> </dependency> --> <dependency> <groupid>commons-dbcp</groupid> <artifactid>commons-dbcp</artifactid> <version>${commons-dbcp.version}</version> </dependency> <dependency> <groupid>cglib</groupid> <artifactid>cglib</artifactid> <version>2.2</version> </dependency> <dependency> <groupid>commons-lang</groupid> <artifactid>commons-lang</artifactid> <version>2.5</version> </dependency> <dependency> <groupid>commons-beanutils</groupid> <artifactid>commons-beanutils</artifactid> <version>1.8.3</version> </dependency> <dependency> <groupid>javax.annotation</groupid> <artifactid>jsr250-api</artifactid> <version>1.0</version> </dependency> <dependency> <groupid>org.mockito</groupid> <artifactid>mockito-all</artifactid> <version>1.8.4</version> </dependency> <dependency> <groupid>commons-io</groupid> <artifactid>commons-io</artifactid> <version>2.4</version> </dependency> <dependency> <groupid>com.googlecode.json-simple</groupid> <artifactid>json-simple</artifactid> <version>1.1.1</version> </dependency> <dependency> <groupid>hsqldb</groupid> <artifactid>hsqldb</artifactid> <version>1.8.0.10</version> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> <resource> <directory>src/main/sertificates</directory> </resource> </resources> <filters> <filter>../${build.profile}.properties</filter> </filters> <plugins> <plugin> <groupid>org.jacoco</groupid> <artifactid>jacoco-maven-plugin</artifactid> <version>0.5.7.201204190339</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-surefire-plugin</artifactid> </plugin> <plugin> <groupid>org.bsc.maven</groupid> <artifactid>maven-processor-plugin</artifactid> <version>1.3.6</version> <configuration> <outputdiagnostics>true</outputdiagnostics> <processors> <processor>org.versly.rest.wsdoc.annotationprocessor</processor> </processors> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>process</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupid>org.versly</groupid> <artifactid>versly-wsdoc</artifactid> <version>1.0-snapshot</version> <scope>compile</scope> </dependency> </dependencies> </plugin> <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>exec-maven-plugin</artifactid> <version>1.2</version> <executions> <execution> <phase>prepare-package</phase> <goals> <goal>java</goal> </goals> <configuration> <mainclass>org.versly.rest.wsdoc.restdocassembler</mainclass> <arguments> <argument>${project.build.directory}/classes</argument> </arguments> </configuration> </execution> </executions> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> <pluginmanagement> <plugins> <!--this plugin's configuration used store eclipse m2e settings only. has no influence on maven build itself.--> <plugin> <groupid>org.eclipse.m2e</groupid> <artifactid>lifecycle-mapping</artifactid> <version>1.0.0</version> <configuration> <lifecyclemappingmetadata> <pluginexecutions> <pluginexecution> <pluginexecutionfilter> <groupid>org.jacoco</groupid> <artifactid> jacoco-maven-plugin </artifactid> <versionrange> [0.5.7.201204190339,) </versionrange> <goals> <goal>prepare-agent</goal> </goals> </pluginexecutionfilter> <action> <ignore></ignore> </action> </pluginexecution> </pluginexecutions> </lifecyclemappingmetadata> </configuration> </plugin> </plugins> </pluginmanagement> </build> </project>
try excluding spring-aop, spring-beans, spring-context, spring-core, spring-expression, spring-jdbc , spring-tx spring security dependencies.
spring security 3.1.3 has dependencies aforementioned spring jars version 3.0.7.release
more details on how add exclusions here: how handle sub projects dependencies in maven
Comments
Post a Comment