You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "jeff porter (JIRA)" <ji...@apache.org> on 2012/09/04 17:48:07 UTC

[jira] [Closed] (WW-3869) Spring 3.1.2.RELEASE, causes NoClassDefFoundError: org/springframework/core/env/EnvironmentCapable

     [ https://issues.apache.org/jira/browse/WW-3869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

jeff porter closed WW-3869.
---------------------------

    Resolution: Not A Problem

spring-core was not in POM.xml
                
> Spring 3.1.2.RELEASE, causes NoClassDefFoundError: org/springframework/core/env/EnvironmentCapable
> --------------------------------------------------------------------------------------------------
>
>                 Key: WW-3869
>                 URL: https://issues.apache.org/jira/browse/WW-3869
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - JUnit, Plugin - Spring
>    Affects Versions: 2.3.4.1
>         Environment: Windows.
> Java 1.6.
> Junit 4.
> spring '3.1.2.RELEASE' or '3.1.1.RELEASE' or '3.1.0.RELEASE'
> struts2-core 2.3.4.1
> Tested with struts2-junit-plugin '2.3.5-SNAPSHOT' and '2.3.4.1'
>            Reporter: jeff porter
>              Labels: patch
>
> trying to load an Action class for unit testing give the following exception...
> {code}
> java.lang.NoClassDefFoundError: org/springframework/core/env/EnvironmentCapable
> 	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 java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
> 	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 	at java.lang.Class.getDeclaredMethods0(Native Method)
> 	at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
> 	at java.lang.Class.getMethod0(Class.java:2670)
> 	at java.lang.Class.getMethod0(Class.java:2679)
> 	at java.lang.Class.getMethod(Class.java:1603)
> 	at org.junit.internal.builders.SuiteMethodBuilder.hasSuiteMethod(SuiteMethodBuilder.java:20)
> 	at org.junit.internal.builders.SuiteMethodBuilder.runnerForClass(SuiteMethodBuilder.java:13)
> 	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
> 	at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
> 	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
> 	at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.lang.ClassNotFoundException: org.springframework.core.env.EnvironmentCapable
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 	... 31 more
> {code}
> Here is the example Java code.
> {code:java}
> import static org.junit.Assert.assertTrue;
> import static org.junit.Assert.assertNotNull;
> import org.apache.struts2.StrutsSpringJUnit4TestCase;
> import org.junit.Before;
> import org.junit.Test;
> import com.opensymphony.xwork2.ActionProxy;
> public class ATest extends StrutsSpringJUnit4TestCase<RepublishTransactionsAction> 
> {
>   @Before
>   public void onSetUp() throws Exception
>   {
>     ActionProxy proxy = getActionProxy("repubAction");
>     assertNotNull(proxy);
>   }
>   @Test
>   public void test() {
>     assertTrue(true);
>   }
> }
> {code}
> If I change my dependencies from:spring '3.1.2.RELEASE'
> to spring '3.0.5.RELEASE' then it works. I'm aware the Maven dependency states it requires 3.0.5 only.
> I've look through JIRA and can't find a task for this, or anyone with the same problem. I've also checked Stack Overflow.
> If this is down to user error on my part, then fine. But I'm sure that 
> its due to a change on the Spring API side. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira