【问题标题】:Exception while dispatching incoming RPC call - GWT分派传入 RPC 调用时出现异常 - GWT
【发布时间】:2011-09-27 05:57:48
【问题描述】:

我在运行 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 日志:调度时出现异常 传入的 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 日志:调度时出现异常 传入的 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 日志:调度时出现异常 传入的 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)

【问题讨论】:

    标签: gwt


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      在第二行你声明了private Class&lt;T&gt; persistentClass;

      后来你在下面的行中使用它

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

      你在哪里初始化它??

      persistentClass = ?
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-04
        相关资源
        最近更新 更多