I am facing an error while running my GWT application.
public abstract class BaseDAOImpl<T> implements BaseDAO<T> {
private Class<T> persistentClass;
@Override
public List<T> findAll() {
PersistenceManager pm = PMF.get().getPersistenceManager();
List<T> results = null;
Query query = null;
try{
query = pm.newQuery(persistentClass); [Error Line]
results = (List<T>) query.execute();
results = (List<T>) pm.detachCopyAll(results);
}finally{
pm.close();
}
return results;
}
}
Showing me Error as following:
[ERROR] javax.servlet.ServletContext
log: Exception while dispatching
incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException:
Service method 'public abstract
java.util.List
com.aamjanta.webapp.client.service.StoreService.getStoreList()'
threw an unexpected exception:
java.lang.OutOfMemoryError: PermGen
space at
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
[ERROR] javax.servlet.ServletContext
log: Exception while dispatching
incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException:
Service method 'public abstract
java.util.List
com.aamjanta.webapp.client.service.StoreService.getStoreList()'
threw an unexpected exception:
java.lang.NoClassDefFoundError: Could
not initialize class
org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager
at
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[ERROR] javax.servlet.ServletContext
log: Exception while dispatching
incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException:
Service method 'public abstract
java.util.List
com.aamjanta.webapp.client.service.CouponService.getCouponList()'
threw an unexpected exception:
java.lang.NoClassDefFoundError: Could
not initialize class
org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager
at
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Best Answer
It looks like GWT isn't expecting your server side to fail with "java.lang.OutOfMemoryError: PermGen", which usually happens when your server JVM doesn't have enough memory to JIT-compile classes into.
(Use -XX:MaxPermSize=128m to increase the size of the Perm space).