java.lang.OutOfMemoryError: PermGen space java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClassCond(Unknown Source) java.lang.ClassLoader.defineClass(Unknown Source) java.security.SecureClassLoader.defineClass(Unknown Source) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1814) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872) org.jboss.web.tomcat.service.WebAppClassLoader.findClass(WebAppClassLoader.java:75) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289) java.sql.DriverManager.getConnection(Unknown Source) java.sql.DriverManager.getConnection(Unknown Source) org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133) org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111) org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101) org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325) com.mfic.util.HibernateUtil.<clinit>(HibernateUtil.java:16) com.mfic.dao.BaseHome.getSession(BaseHome.java:16) com.mfic.core.helper.UserManager.findByUserId(UserManager.java:248) com.mfic.core.action.Login.authenticate(Login.java:39) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
尝试修改了eclipse.ini和tomcat/bin/catalina.sh文件,添加jvm启动的 -XX:PermSize=256m -XX:MaxPermSize=256m,启动tomcat依然报异常。
后来发现wtp插件并不是通过外部的脚本启动tomcat的,而是通过命令行执行java命令启动tomcat的。那么如何修改呢?
1、选择一个web工程,右键选择Run Configuration
2、选择Argument tab页,
3、在vm arguments中添加-XX:PermSize=256m -XX:MaxPermSize=256m