调度传入RPC调用时的异常 - GWT

时间:2011-07-02 10:57:36

标签: gwt

我在运行GWT应用程序时遇到错误。

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;
    }
}

显示错误如下:

  

[错误] javax.servlet.ServletContext   log:调度时出现异常   传入的RPC调用   com.google.gwt.user.server.rpc.UnexpectedException:   服务方法'公共摘要   java.util.List中   com.aamjanta.webapp.client.service.StoreService.getStoreList()”   抛出意外的异常:   java.lang.OutOfMemoryError:PermGen   空间   com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)     在   com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)     在   com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)     在   com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)     在   com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)     在   javax.servlet.http.HttpServlet.service(HttpServlet.java:637)     在   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)     在   org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166)


  

[错误] javax.servlet.ServletContext   log:调度时出现异常   传入的RPC调用   com.google.gwt.user.server.rpc.UnexpectedException:   服务方法'公共摘要   java.util.List中   com.aamjanta.webapp.client.service.StoreService.getStoreList()”   抛出意外的异常:   java.lang.NoClassDefFoundError:可以   没有初始化类   org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager     在   com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)     在   com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)     在   com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)     在   com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)     在   com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)     在   javax.servlet.http.HttpServlet.service(HttpServlet.java:637)     在   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


  

[错误] javax.servlet.ServletContext   log:调度时出现异常   传入的RPC调用   com.google.gwt.user.server.rpc.UnexpectedException:   服务方法'公共摘要   java.util.List中   com.aamjanta.webapp.client.service.CouponService.getCouponList()”   抛出意外的异常:   java.lang.NoClassDefFoundError:可以   没有初始化类   org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager     在   com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)     在   com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)     在   com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)     在   com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)     在   com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)     在   javax.servlet.http.HttpServlet.service(HttpServlet.java:637)     在   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

2 个答案:

答案 0 :(得分:0)

看起来GWT并不期望您的服务器端失败并出现“java.lang.OutOfMemoryError:PermGen”,这通常发生在您的服务器JVM没有足够的内存来将JIT编译成类时。

(使用-XX:MaxPermSize = 128m来增加Perm空间的大小)。

答案 1 :(得分:0)

在第二行中您声明了private Class<T> persistentClass;

以后你在下面的行中使用

query = pm.newQuery(persistentClass); [Error Line]

你正在初衷那个??

persistentClass = ?