Google应用程序引擎对java.io的限制?

Google应用程序引擎对java.io的限制?,java,google-app-engine,gwt,Java,Google App Engine,Gwt,我有一个GWT应用程序,它在本地使用GAE谷歌应用程序引擎运行良好 在服务器端RPC服务中,我使用以下json类: 我在本地工作没有问题,但是当在云中部署到Google App Engine时,我在这个类中得到了一个Stackoverflow 云中可能存在一些本地未出现的限制,从而导致其失败?或者,云计算中的google app engine不支持以下任何类 import java.io.BufferedWriter; import java.io.ByteArrayOutputStream;

我有一个GWT应用程序,它在本地使用GAE谷歌应用程序引擎运行良好

在服务器端RPC服务中,我使用以下json类:

我在本地工作没有问题,但是当在云中部署到Google App Engine时,我在这个类中得到了一个Stackoverflow

云中可能存在一些本地未出现的限制,从而导致其失败?或者,云计算中的google app engine不支持以下任何类

import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.Flushable;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
这是我在appengine日志中得到的stacktrace:

javax.servlet.ServletContext log: Exception while dispatching incoming RPC call

java.lang.StackOverflowError
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579)
    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)
    at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
    at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:438)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:480)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:487)
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:774)
    at com.google.tracing.TraceContext$DoInTraceContext.runInContext(TraceContext.java:751)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:342)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:334)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:484)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.StackOverflowError
    at java.security.AccessController.doPrivileged(Native Method)
    at java.io.PrintWriter.<init>(PrintWriter.java:116)
    at java.io.PrintWriter.<init>(PrintWriter.java:100)
    at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:155)
    at java.util.logging.StreamHandler.publish(StreamHandler.java:196)
    at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:105)
    at java.util.logging.Logger.log(Logger.java:530)
    at java.util.logging.Logger.doLog(Logger.java:551)
    at java.util.logging.Logger.log(Logger.java:640)
    at java.lang.reflect.Field.get(Field.java:30)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1508)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeCollectionElement(JsonWriter.java:1441)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeCollection(JsonWriter.java:980)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:608)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeCollectionElement(JsonWriter.java:1441)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeCollection(JsonWriter.java:980)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:608)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
    at com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
[and so on...]
javax.servlet.ServletContext日志:调度传入RPC调用时发生异常
栈溢出
位于com.google.gwt.user.server.rpc.rpc.encodeResponseForFailure(rpc.java:389)
位于com.google.gwt.user.server.rpc.rpc.invokeAndEncodeResponse(rpc.java:579)
位于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)
在com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)上
位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
位于com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
位于com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57)
位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
位于com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
位于com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
位于org.mortbay.jetty.Server.handle(Server.java:326)
位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
位于org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
位于com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
位于com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
位于com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:438)
位于com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:480)
在com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:487)
位于com.google.tracing.TraceContext.runInContext(TraceContext.java:774)
在com.google.tracing.TraceContext$DoInTraceContext.runInContext(traceontext.java:751)上
位于com.google.tracing.TraceContext$AbstractTraceContextCallback.RunInheritedContextNonRef(traceontext.java:342)
在com.google.tracing.TraceContext$AbstractTraceContextCallback.RunInheritedContext(TraceContext.java:334)
位于com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:484)
位于com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
运行(Thread.java:722)
原因:java.lang.StackOverflower错误
位于java.security.AccessController.doPrivileged(本机方法)
在java.io.PrintWriter。(PrintWriter.java:116)
在java.io.PrintWriter。(PrintWriter.java:100)
位于java.util.logging.SimpleFormatter.format(SimpleFormatter.java:155)
位于java.util.logging.StreamHandler.publish(StreamHandler.java:196)
位于java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:105)
位于java.util.logging.Logger.log(Logger.java:530)
位于java.util.logging.Logger.doLog(Logger.java:551)
位于java.util.logging.Logger.log(Logger.java:640)
位于java.lang.reflect.Field.get(Field.java:30)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1508)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeCollectionElement(JsonWriter.java:1441)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeCollection(JsonWriter.java:980)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:608)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeImpl(JsonWriter.java:636)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.writeObject(JsonWriter.java:1531)
位于com.google.gwt.user.server.rpc.util.io.JsonWriter.wri