I have this kind of problem ([this one](https://stackoverflow.com/questions/46391970/getting-illegalstateexception-no-such-servlet-jsp-when-accessing-deployed-spri)), with app engine.

I just get started and trying to deploy my java app to App engine with eclipse plugin, after testing it at least 100 times at localhost (with tomcat-server and App engine standard localhost), it works fine in local.

But when I deploy it as app engine standard, I got this error when I'm trying to access any servlet: 

> 
> java.lang.IllegalStateException: No such servlet: jsp
>  at org.eclipse.jetty.servlet.ServletHandler.updateMappings (ServletHandler.java:1535)
>  at org.eclipse.jetty.servlet.ServletHandler.doStart (ServletHandler.java:157)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:131)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:105)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
>  at org.eclipse.jetty.security.SecurityHandler.doStart (SecurityHandler.java:361)
>  at org.eclipse.jetty.security.ConstraintSecurityHandler.doStart (ConstraintSecurityHandler.java:448)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:131)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:105)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
>  at org.eclipse.jetty.server.handler.ScopedHandler.doStart (ScopedHandler.java:120)
>  at org.eclipse.jetty.server.session.SessionHandler.doStart (SessionHandler.java:116)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:131)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:105)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
>  at org.eclipse.jetty.server.handler.ScopedHandler.doStart (ScopedHandler.java:120)
>  at org.eclipse.jetty.server.handler.ContextHandler.startContext (ContextHandler.java:809)
>  at org.eclipse.jetty.servlet.ServletContextHandler.startContext (ServletContextHandler.java:345)
>  at org.eclipse.jetty.webapp.WebAppContext.startWebapp (WebAppContext.java:1406)
>  at org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1368)
>  at org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:778)
>  at org.eclipse.jetty.servlet.ServletContextHandler.doStart (ServletContextHandler.java:262)
>  at org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:522)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
>  at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.createHandler (AppVersionHandlerMap.java:244)
>  at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.getHandler (AppVersionHandlerMap.java:182)
>  at com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest (JettyServletEngineAdapter.java:97)
>  at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest (JavaRuntime.java:680)
>  at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest (JavaRuntime.java:642)
>  at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run (JavaRuntime.java:612)
>  at com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run (JavaRuntime.java:806)
>  at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run (ThreadGroupPool.java:274)
>  at java.lang.Thread.run (Thread.java:745)
> 
> 
> 

I can access to other files, images, \*.html.

I don't know if its important, I noticed that in app engine my web.xml file is modified by adding *servlet* and *servelt-mapping* (mapping to cloud storage I think) for all of my \*.jsp files , but not in localhost.

And somewhere in the log details "This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.", I don't know if is that linked to my trial account.

I am using datanucleus (datanucleus-api-jdo-5.1.0-release) libs, I have some filters, index file and error-page jsp in my web.xml too.

Eclipse project facets :   

 App engine standard envirement : JRE8   

 Servlet API : 2.5   

 JAVA : 1.8   

 JPA : 1.0

I really need help, thanks.

appengine-web.xml file:

```html
<?xml version="1.0" encoding="UTF-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">

  <threadsafe>true</threadsafe>
  <sessions-enabled>true</sessions-enabled>

  <runtime>java8</runtime>
</appengine-web-app>
```

web.xml file :

```html
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>my_project</display-name>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <!-- SERVLETS  DEFs -->

  <servlet>
    <servlet-name>Welcome</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.Welcome</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>Statistic</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.Statistic</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>Genea_Tree</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.Genea_Tree</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>Genea_TreeEdit</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.Genea_TreeEdit</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>New_event</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.New_event</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>Inscription</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.Inscription</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>InscriptionStep1</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.InscriptionStep1</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>InscriptionStep2</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.InscriptionStep2</servlet-class>
  </servlet>
  <servlet>
   <servlet-name>InscriptionConfirm</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.InscriptionConfirm</servlet-class>
  </servlet>
  <servlet>
   <servlet-name>About</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.About</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>AdminDashboard</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.AdminDashboard</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>AdminAuthentification</servlet-name>
    <servlet-class>my_root_package.servlets.secutity.controllers.AdminAuthentification</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>AdminPassReset</servlet-name>
    <servlet-class>my_root_package.servlets.secutity.controllers.AdminPassReset</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>Search</servlet-name>
    <servlet-class>my_root_package.servlets.controllers.Search</servlet-class>
  </servlet>

<!-- SERVLETS  MAPPING -->

  <servlet-mapping>
    <servlet-name>Welcome</servlet-name>
    <url-pattern>/welcome</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Statistic</servlet-name>
    <url-pattern>/statistic</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Genea_Tree</servlet-name>
    <url-pattern>/genea_tree</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Genea_TreeEdit</servlet-name>
    <url-pattern>/genea_tree/DetailEdit</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Genea_TreeEdit</servlet-name>
    <url-pattern>/genea_tree/DetailEditMore</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>New_event</servlet-name>
    <url-pattern>/new_event</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Inscription</servlet-name>
    <url-pattern>/inscription</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>InscriptionStep1</servlet-name>
    <url-pattern>/inscription/step1</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>InscriptionStep2</servlet-name>
    <url-pattern>/inscription/step2</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>InscriptionConfirm</servlet-name>
    <url-pattern>/inscription/Confirmation</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>About</servlet-name>
    <url-pattern>/about</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminAuthentification</servlet-name>
    <url-pattern>/admin/Authentification</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminPassReset</servlet-name>
    <url-pattern>/admin/PassReset</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin/dashboard</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin/dashboard/insertionCommit</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin/dashboard/updateCommit</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin/dashboard/deleteCommit</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin/InsertionCommitPost</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin/updateCommitPost</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AdminDashboard</servlet-name>
    <url-pattern>/admin/deleteCommitPost</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Search</servlet-name>
    <url-pattern>/AdvancedSearch</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Search</servlet-name>
    <url-pattern>/search</url-pattern>
  </servlet-mapping>

 <!-- ERROR PAGES -->

 <error-page>
  <exception-type>java.lang.Exception</exception-type>
  <location>/WEB-INF/errorManagement.jsp</location>
 </error-page>
 <error-page>
  <error-code>404</error-code>
  <location>/WEB-INF/404ErrorManagement.jsp</location>
 </error-page>

 <jsp-config>
  <jsp-property-group>
   <url-pattern>*.jsp</url-pattern>
   <page-encoding>UTF-8</page-encoding>
   <include-prelude>/WEB-INF/taglibs.jsp</include-prelude>
  </jsp-property-group>
 </jsp-config>

 <filter>
  <filter-name>encodingfilter</filter-name>
  <filter-class>my_root_package.filters.EncodingFilter</filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </filter>

<!--  FILTERS DEFs -->
 <filter>
  <filter-name>multipartFilter</filter-name>
  <filter-class>my_root_package.filters.MultipartFilter</filter-class>
  <init-param>
   <param-name>maxFileSize</param-name>
   <param-value>360000</param-value>
  </init-param>
 </filter>

 <!--  FILTERS MAPPING -->
 <filter-mapping>
  <filter-name>encodingfilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

 <filter-mapping>
  <filter-name>multipartFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

</web-app>
```