【问题标题】:GCloud java error: java.lang.IllegalStateException: Response has already been committedGCloud java错误:java.lang.IllegalStateException:响应已经提交
【发布时间】:2021-08-09 14:57:23
【问题描述】:

我正在尝试创建具有以下属性的商店 api: StoreId、名称、位置、电话、产品列表(ProductId、对象、价格、库存)、列表产品的大小

问题是,当商店被 List 中的项目启动时,它会这样响应:

java.lang.IllegalStateException: 响应已经提交 在 com.google.appengine.repackaged.com.google.common.base.Preconditions.checkState(Preconditions.java:508) 在 com.google.appengine.tools.development.ResponseRewriterFilter$ResponseWrapper.checkNotCommitted(ResponseRewriterFilter.java:628) 在 com.google.appengine.tools.development.ResponseRewriterFilter$ResponseWrapper.sendError(ResponseRewriterFilter.java:714) 在 org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:109) 在 org.jboss.resteasy.core.SynchronousDispatcher.handleFailure(SynchronousDispatcher.java:283) 在 org.jboss.resteasy.core.SynchronousDispatcher.handleWriterException(SynchronousDispatcher.java:417) 在 org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:237) 在 org.jboss.resteasy.core.SynchronousDispatcher.handleWriteResponseException(SynchronousDispatcher.java:221) 在 org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:531) 在 org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:125) 在 org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) 在 org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) 在 org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在 org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1452) 在 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791) 在 org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626) 在 com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:134) 在 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 在 org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 在 com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) 在 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 在 org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 在 com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 在 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 在 org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 在 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) 在 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 在 org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 在 com.google.appengine.tools.development.jetty9.StaticFileFilter.doFilter(StaticFileFilter.java:123) 在 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 在 org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 在 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 在 org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 在 com.google.appengine.tools.development.DevAppServerRequestLogFilter.doFilter(DevAppServerRequestLogFilter.java:28) 在 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201) 在 org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350) 在 com.google.appengine.tools.development.jetty9.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:94) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 在 com.google.appengine.tools.development.jetty9.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:599) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 在 org.eclipse.jetty.server.Server.handle(Server.java:516) 在 org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) 在 org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) 在 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) 在 org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279) 在 org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) 在 org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) 在 org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) 在 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036) 在 java.base/java.lang.Thread.run(Thread.java:834)

但是,如果所有商店都没有商品,则没有问题,但如果所有商店都没有商品,则该api无用。

【问题讨论】:

    标签: java eclipse servlets java-8 gcloud


    【解决方案1】:

    这是因为团队中的其他人编写了 Product 类,试图用其名称引用存储,但将所有存储作为参数,在同一个对象存储中引用对象存储。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-16
      • 2016-03-08
      • 2013-06-21
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      相关资源
      最近更新 更多