我使用Windows server 2008 r2在Tomcat上完成了IBM MobileFirst Server 6.3的安装,并成功部署了我的第一个war文件。接下来,我创建了第二个运行时,从服务器配置工具部署了不同的war文件,并重新启动了Tomcat。 Tomcat收到错误,重启失败。
从服务器日志:
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
at java.util.concurrent.FutureTask.get(FutureTask.java:111)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.privateGetPublicMethods(Class.java:2571)
at java.lang.Class.getMethods(Class.java:1429)
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1261)
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1122)
at java.beans.Introspector.getBeanInfo(Introspector.java:414)
at java.beans.Introspector.getBeanInfo(Introspector.java:161)
at org.apache.wink.common.internal.registry.metadata.ClassMetadata.<init>(ClassMetadata.java:67)
at org.apache.wink.common.internal.registry.metadata.AbstractMetadataCollector.<init>(AbstractMetadataCollector.java:51)
at org.apache.wink.common.internal.registry.metadata.ProviderMetadataCollector.<init>(ProviderMetadataCollector.java:42)
at org.apache.wink.common.internal.registry.metadata.ProviderMetadataCollector.collectMetadata(ProviderMetadataCollector.java:103)
at org.apache.wink.common.internal.lifecycle.LifecycleManagerUtils.collectClassMetadata(LifecycleManagerUtils.java:74)
at org.apache.wink.common.internal.lifecycle.LifecycleManagerUtils.createPrototypeObjectFactory(LifecycleManagerUtils.java:66)
at org.apache.wink.common.internal.lifecycle.ScopeLifecycleManager.createObjectFactory(ScopeLifecycleManager.java:67)
at org.apache.wink.common.internal.lifecycle.LifecycleManagersRegistry.getObjectFactory(LifecycleManagersRegistry.java:79)
at org.apache.wink.common.internal.registry.ProvidersRegistry.addProvider(ProvidersRegistry.java:110)
at org.apache.wink.server.internal.application.ApplicationProcessor.processClasses(ApplicationProcessor.java:188)
at org.apache.wink.server.internal.application.ApplicationProcessor.process(ApplicationProcessor.java:91)
at org.apache.wink.server.internal.DeploymentConfiguration.addApplication(DeploymentConfiguration.java:339)
at org.apache.wink.server.internal.RequestProcessor.registerDefaultApplication(RequestProcessor.java:99)
at org.apache.wink.server.internal.RequestProcessor.<init>(RequestProcessor.java:81)
at org.apache.wink.server.internal.servlet.RestServlet.createRequestProcessor(RestServlet.java:166)
at org.apache.wink.server.internal.servlet.RestServlet.init(RestServlet.java:103)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
我曾尝试修改setenv.sh中的内存设置:
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
并没有显示任何效果 我还能做什么呢?
答案 0 :(得分:0)
您似乎已按照此答案的第二个选项:https://stackoverflow.com/a/10392385/1530814
因为它显然不适合你,为什么不试试第一个选项呢?
-XX:MaxPermSize=SIZE_VALUE