AbstractTransactionalJUnit4SpringContextTests - PullRequest
0 голосов
/ 18 апреля 2011

Я использую AbstractTransactionalJUnit4SpringContextTests как суперкласс для моих тестовых классов.

но "mvn test" не хватает памяти.

Вот фрагмент моего класса BaseTest:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations=
    {"classpath:**/applicationContext.xml",
     "classpath:**/simple-test-datasource.xml"})
@TransactionConfiguration(
     transactionManager="myService.transactionManager",defaultRollback=true)
public class ServiceBaseTest extends AbstractTransactionalJUnit4SpringContextTests{

----

}

Мне не хватает чего-то вроде @Before @After или @BeforeClass @AfterClass, что делает эти тесты действительно тяжелыми, и, следовательно, у меня заканчивается память?

Пожалуйста, помогите!

Спасибо!

Вот трассировка стека:

java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
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 sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at com.apple.crypto.provider.Apple.doSelfVerification(Apple.java:271)
at com.apple.crypto.provider.Apple.verifySelfIntegrity(Apple.java:192)
at com.apple.crypto.provider.HmacCore.<init>(HmacCore.java:45)
at com.apple.crypto.provider.HmacSHA1.<init>(HmacSHA1.java:30)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at java.security.Provider$Service.newInstance(Provider.java:1221)
at javax.crypto.Mac.a(DashoA13*..)
at javax.crypto.Mac.init(DashoA13*..)
at org.springframework.security.oauth.common.signature.HMAC_SHA1SignatureMethod.verify(HMAC_SHA1SignatureMethod.java:122)
at org.springframework.security.oauth.provider.OAuthProviderProcessingFilter.validateSignature(OAuthProviderProcessingFilter.java:261)
at org.springframework.security.oauth.provider.OAuthProviderProcessingFilter.doFilter(OAuthProviderProcessingFilter.java:146)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.oauth.provider.OAuthProviderProcessingFilter.doFilter(OAuthProviderProcessingFilter.java:193)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

Вы, кажется, загружаете весь контекст приложения Spring в память с помощью аннотации ContextConfiguration. Это может занять много памяти, в зависимости от того, какие бины вы определили.

Попробуйте увеличить объем памяти, доступной для JVM, установив M2_OPTS=-Xmx256m в вашей среде.

1 голос
/ 07 февраля 2012

Трассировка стека относится к постоянной памяти, а не кучи. Поэтому, пожалуйста, попробуйте увеличить объем памяти, например, -XX: MaxPermSize = 1024M

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...