appengine-java-standard icon indicating copy to clipboard operation
appengine-java-standard copied to clipboard

Error when loading a Web App with missing servlet class defined in web.xml is not reported as fatal

Open ludoch opened this issue 1 year ago • 0 comments

In the log file of an app that defines a servlet which does not exist we see this error emitted as a WARNING as opposed to FATAL or ERROR?

WARNING 2024-03-20T20:32:25.020296Z Unable to load class org.eclipse.jetty.servlet.DefaultServlet java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.DefaultServlet at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at com.google.apphosting.runtime.ApplicationClassLoader.findClass(ApplicationClassLoader.java:150) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at org.eclipse.jetty.util.Loader.loadClass(Loader.java:58) at org.eclipse.jetty.ee10.servlet.BaseHolder.doStart(BaseHolder.java:96) at org.eclipse.jetty.ee10.servlet.ServletHolder.doStart(ServletHolder.java:378) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93) at org.eclipse.jetty.ee10.servlet.ServletHandler.lambda$initialize$2(ServletHandler.java:659) at org.eclipse.jetty.util.ExceptionUtil$MultiException.callAndCatch(ExceptionUtil.java:262) at org.eclipse.jetty.ee10.servlet.ServletHandler.lambda$initialize$3(ServletHandler.java:657) at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at org.eclipse.jetty.ee10.servlet.ServletHandler.initialize(ServletHandler.java:680) at org.eclipse.jetty.ee10.servlet.ServletContextHandler.startContext(ServletContextHandler.java:1316) at org.eclipse.jetty.ee10.webapp.WebAppContext.startContext(WebAppContext.java:1223) at com.google.apphosting.runtime.jetty.ee10.AppEngineWebAppContext.startContext(AppEngineWebAppContext.java:286) at org.eclipse.jetty.ee10.servlet.ServletContextHandler.lambda$doStart$0(ServletContextHandler.java:1042) at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1149) at org.eclipse.jetty.ee10.servlet.ServletContextHandler.doStart(ServletContextHandler.java:1039) at org.eclipse.jetty.ee10.webapp.WebAppContext.doStart(WebAppContext.java:496) at com.google.apphosting.runtime.jetty.ee10.AppEngineWebAppContext.doStart(AppEngineWebAppContext.java:232) at org.eclipse.jetty.util.com…
  {
    "textPayload": "Unable to load class org.eclipse.jetty.servlet.DefaultServlet\njava.lang.ClassNotFoundException: org.eclipse.jetty.servlet.DefaultServlet\n\tat java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)\n\tat com.google.apphosting.runtime.ApplicationClassLoader.findClass(ApplicationClassLoader.java:150)\n\tat java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)\n\tat java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)\n\tat org.eclipse.jetty.util.Loader.loadClass(Loader.java:58)\n\tat org.eclipse.jetty.ee10.servlet.BaseHolder.doStart(BaseHolder.java:96)\n\tat org.eclipse.jetty.ee10.servlet.ServletHolder.doStart(ServletHolder.java:378)\n\tat org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)\n\tat org.eclipse.jetty.ee10.servlet.ServletHandler.lambda$initialize$2(ServletHandler.java:659)\n\tat org.eclipse.jetty.util.ExceptionUtil$MultiException.callAndCatch(ExceptionUtil.java:262)\n\tat org.eclipse.jetty.ee10.servlet.ServletHandler.lambda$initialize$3(ServletHandler.java:657)\n\tat java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)\n\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)\n\tat java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)\n\tat java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)\n\tat java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)\n\tat org.eclipse.jetty.ee10.servlet.ServletHandler.initialize(ServletHandler.java:680)\n\tat org.eclipse.jetty.ee10.servlet.ServletContextHandler.startContext(ServletContextHandler.java:1316)\n\tat org.eclipse.jetty.ee10.webapp.WebAppContext.startContext(WebAppContext.java:1223)\n\tat com.google.apphosting.runtime.jetty.ee10.AppEngineWebAppContext.startContext(AppEngineWebAppContext.java:286)\n\tat org.eclipse.jetty.ee10.servlet.ServletContextHandler.lambda$doStart$0(ServletContextHandler.java:1042)\n\tat org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1149)\n\tat org.eclipse.jetty.ee10.servlet.ServletContextHandler.doStart(ServletContextHandler.java:1039)\n\tat org.eclipse.jetty.ee10.webapp.WebAppContext.doStart(WebAppContext.java:496)\n\tat com.google.apphosting.runtime.jetty.ee10.AppEngineWebAppContext.doStart(AppEngineWebAppContext.java:232)\n\tat org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)\n\tat com.google.apphosting.runtime.jetty.ee10.EE10AppVersionHandlerFactory.doCreateHandler(EE10AppVersionHandlerFactory.java:213)\n\tat com.google.apphosting.runtime.jetty.ee10.EE10AppVersionHandlerFactory.createHandler(EE10AppVersionHandlerFactory.java:108)\n\tat com.google.apphosting.runtime.jetty.AppVersionHandler.ensureHandler(AppVersionHandler.java:79)\n\tat com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:203)\n\tat com.google.apphosting.runtime.RequestRunner.dispatchServletRequest(RequestRunner.java:262)\n\tat com.google.apphosting.runtime.RequestRunner.dispatchRequest(RequestRunner.java:227)\n\tat com.google.apphosting.runtime.RequestRunner.run(RequestRunner.java:193)\n\tat com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:273)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\n",
    "insertId": "65fb47d900004f4872359cd2",
    "resource": {
      "type": "gae_app",
      "labels": {
        "project_id": "domain-registry-alpha",
        "zone": "us17",
        "version_id": "20240320t161234",
        "module_id": "default"
      }
    },
    "timestamp": "2024-03-20T20:32:25.020296Z",
    "severity": "WARNING",
    "labels": {
      "clone_id": "00a22404dcc58d909504cd741235a91ba8050fd0ecaf9dd5dc06aa3997ca4c1b7920111243a76466a9fdb4cedc9e6b979d748e3a0fdf5ecb6eb9e8cdec04d7a99b95b8"
    },
    "logName": "projects/domain-registry-alpha/logs/%2Fvar%2Flog%2Fapp",
    "trace": "projects/domain-registry-alpha/traces/b1d1411162cc75eca0d499d49ba89783",
    "sourceLocation": {
      "file": "BaseHolder.java",
      "line": "102",
      "function": "org.eclipse.jetty.ee10.servlet.BaseHolder.doStart"
    },
    "receiveTimestamp": "2024-03-20T20:32:25.118602837Z",
    "spanId": "5b2da9779a0988eb"
  }

ludoch avatar Mar 21 '24 20:03 ludoch