Hi I'm writing a maven java web application. I use JPA and Hibernate in my project and wrote a contextinitialized listener which when application starts, will create an entity manager factory and put it in servlet context attribute. But when I run this code, I get the following error. I did the same before and never got this exception.
public class ContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
EntityManagerFactory EMF = Persistence.createEntityManagerFactory("App");
ServletContext ctx = sce.getServletContext() ;
ctx.setAttribute("EMF", EMF);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
The exception is:
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2479)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:880)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1294)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177)
at Listeners.ContextListener.contextInitialized(ContextListener.java:23)