java.lang.NoClassDefFoundError: com.google.gson.Gson является ограниченным классом. Подробнее см. В руководстве разработчика Google App Engine.
Проще говоря, при развертывании моего (Java) приложения в GAE, GAE выдает java.lang.NoClassDefFoundError для класса в одном из связанных jar-файлов. Я использую GSON в GAE, но он не может работать, и я уже импортирую GSON-2.2.4.jar. Я не знаю, как это решить.
javax.servlet.ServletException: java.lang.NoClassDefFoundError: com.google.gson.Gson является ограниченным классом. Подробнее см. В руководстве разработчика Google App Engine. по адресу org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) по адресу org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:79_sp_jsp_jp_p_s_p_p_s_p_t_s_p_t_s_p_t_s_r_p_s_r_p_t_t_t_t_rg)..java:89) в org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) в javax.servlet.http.HttpServlet.service(HttpServlet.java:717) в org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) в org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) в org.apache.jasper.servlet.JspServlet.serlet: сервисный центр (JS).google.appengine.tools.development. (Собственный метод) по адресу com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:58) по адресу javax.servlet.http.HttpSer vlet.service (HttpServlet.java:717) по адресу org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) по адресу org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet): Servlet: HL по адресу com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) по адресу org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157, com com).tools.development.DevAppServerModulesFilter. (DevAppServerModulesFilter.java:116) по адресу org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) по адресу org.mortbay.jetty.servlet.ServletHandler.handle: orjlet (38-го уровня) в Servlet.Herler.Herler.Herler.Herler.Herler (38) в Servlet (38) в Servlet (38).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(WebAppte) Java:418) на com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98) на org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) на org.mortb.servlet.Dispatcher.forward(Dispatcher.java:126) по адресу com.google.appengine.tools.development.StaticFileUtils.serveWelcomeFileAsForward(StaticFileUtils.java:82) по адресу com.google.appengine.tools.development.LocalResourceFileServererWerServeletServelet.java:254) по адресу com.google.appengine.tools.development.LocalResourceFileServlet.doGet(LocalResourceFileServlet.java:120) по адресу javax.servlet.http.HttpServlet.service(HttpServlet.java:6t. HttpServlet.service (HttpServlet.java:717) в org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java:5 11) в org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) в com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) в org.m.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) в com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127) в org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) по адресу com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) по адресу org.mortbay.jetty.servlet.ServletHandler $ CachedChain.jf) на com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) по адресу org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java.g1157) в at. apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) в org.mortbay.jetty.servlet.Servlet Обработчик $ CachedChain.doFilter (ServletHandler.java:1157) в com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:125) в org.mortbay.jetty.servlet.ServletHandler.SerletHandler. java: 1157) по адресу com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) по адресу com.google.appengine.tools.development.DevAppServerModulesFilter.doDerMaMeFF ().appengine.tools.development.DevAppServerModulesFilter. (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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98) atlerg. org.handle(HandlerWrapper.java:152) в com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:490) в org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.raj). на org.mortbay.jetty.Server.handle(Server.java:326) на org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) на org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete:923) по адресу org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) по адресу org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) по адресу org.mortbay.jett.Hettp. Java:404) в org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) в org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) Причина: java.lang.NoClassDefFoundError: com.google.gson.Gson - класс с ограниченным доступом. Подробнее см. В руководстве разработчика Google App Engine. на com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51) на test.client.CatchData.getData(CatchData.java:135) на test.client.Main.run(Main.java:56) в org.apache.jsp.index_jsp._jspService(index_jsp.java:69) ... еще 66
1 ответ
Из среды выполнения Java App Engine Google:
Песочница
Чтобы позволить App Engine распределять запросы приложений на несколько веб-серверов и предотвращать взаимодействие одного приложения с другим, приложение запускается в ограниченной среде "песочницы". В этой среде приложение может выполнять код, хранить и запрашивать данные в хранилище данных App Engine, использовать почту App Engine, службы получения URL-адресов и службы пользователей, а также проверять веб-запрос пользователя и готовить ответ.
Приложение App Engine не может:
записать в файловую систему. Приложения должны использовать хранилище данных App Engine для хранения постоянных данных. Чтение из файловой системы разрешено, и все файлы приложения, загруженные вместе с приложением, доступны.
отвечай медленно. Веб-запрос к приложению должен быть обработан в течение нескольких секунд. Процессы, для ответа которых требуется очень много времени, завершаются, чтобы избежать перегрузки веб-сервера.
совершать другие виды системных вызовов.