我有一个库(vraptor-test),它在我的 maven 项目中的 web 服务上进行单元测试。为了运行这些测试,这个库启动了一个嵌入式 Tomcat。
Tomcat tomcat = new Tomcat();
我检查了依赖树,下面的列表代表了测试库添加到我的项目中的tomcat相关jar:
+- org.apache.tomcat:tomcat-catalina:jar:7.0.23:compile
[INFO] | | +- org.apache.tomcat:tomcat-servlet-api:jar:7.0.23:compile
[INFO] | | +- org.apache.tomcat:tomcat-juli:jar:7.0.23:compile
[INFO] | | +- org.apache.tomcat:tomcat-annotations-api:jar:7.0.23:compile
[INFO] | | +- org.apache.tomcat:tomcat-api:jar:7.0.23:compile
[INFO] | | \- org.apache.tomcat:tomcat-util:jar:7.0.23:compile
[INFO] | +- org.apache.tomcat.embed:tomcat-embed-core:jar:7.0.23:compile
[INFO] | \- org.apache.tomcat:tomcat-jasper:jar:7.0.23:compile
[INFO] | +- org.apache.tomcat:tomcat-jsp-api:jar:7.0.23:compile
[INFO] | +- org.apache.tomcat:tomcat-el-api:jar:7.0.23:compile
[INFO] | +- org.eclipse.jdt.core.compiler:ecj:jar:3.7:compile
[INFO] | \- org.apache.tomcat:tomcat-jasper-el:jar:7.0.23:compile
当我运行我的测试类时,会弹出以下错误并且测试甚至没有完成:
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
通常,我会在 tomcat 文件夹下进行更改以setenv.bat
增加 PermGem 空间,但是,由于我运行的是嵌入式 Tomcat,我找不到它的文件夹,只有它的 jars。
我已经尝试在 Eclipse 中增加 JVM 内存(Window -> Preferences -> Java -> Installed JREs -> jdk -> Edit -> Default Vm Arguments),-Xmx1024M -Xms1024M -XX:PermSize=2048m -XX:MaxPermSize=2048m
但我仍然遇到同样的错误。
我在哪里可以更改嵌入式 tomcat 的 permgem 空间?