- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用应用引擎时遇到了此类问题 ( this one )。
我刚刚开始尝试使用 Eclipse 插件将我的 Java 应用程序部署到 App Engine,在本地主机(使用 Tomcat 服务器和 App Engine 标准本地主机)测试了至少 100 次之后,它在本地运行良好。
但是当我将其部署为应用程序引擎标准时,当我尝试访问任何 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)
我可以访问其他文件、图像、*.html。
我不知道它是否重要,我注意到在应用程序引擎中,我的 web.xml 文件通过添加 servlet 和 servelt-mapping (映射到云)进行了修改我认为)用于我的所有 *.jsp 文件,但不在本地主机中。
日志详细信息中的某处“此请求导致您的应用程序启动一个新进程,从而导致您的应用程序代码首次加载。因此,与典型的请求相比,此请求可能需要更长的时间并使用更多的 CPU请求您的申请。”,我不知道它是否链接到我的试用帐户。
我正在使用 datanucleus (datanucleus-api-jdo-5.1.0-release) 库,我的 web.xml 中也有一些过滤器、索引文件和错误页面 jsp。
Eclipse 项目方面:
App Engine标准环境:JRE8
Servlet API:2.5
JAVA:1.8
JPA:1.0
我真的需要帮助,谢谢。
appengine-web.xml 文件:
<?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 文件:
<?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>
最佳答案
抱歉,我没有看到您的更新。我注意到你的 web.xml 中有一个 jsp-config
引用 *.jsp
的部分URL 模式,但您的 servlet 映射都没有 jsp
后缀。
<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>
GAE 预编译 JSP 作为部署过程的一部分,因此我不确定这种类型的处理是否有效。您可以尝试内联对 taglibs.jsp
的引用吗?而是在您的 JSP 中?您应该能够执行以下操作:
<%@ include file="/WEB-INF/taglibs.jsp" %>
更新:我遇到了 a post一位 Google 工程师宣布 <jsp-config>
像你这样的选项应该有效。如果包含有效,那么最好 open a bug on the issue tracker .
关于java - 获取 IllegalStateException : No such servlet: jsp when accessing deployed java application to Google App Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002444/
我有一个关于 Java Servlet 的问题。 假设我在 servlet 网页“somePage”上。我想登录(使用另一个 servlet,“登录”servlet)。所以我点击“somePage”上
如何将变量数组从一个 servlet 传递到另一个 servlet? 最佳答案 如果您要将当前请求传递给另一个servlet,则只需将其设置为请求属性即可。 request.setAttribute(
什么可能导致此错误? Caused by: jakarta.servlet.UnavailableException: Servlet class org.restlet.ext.servle
我的maven依赖树是这样的 我想问我maven如何解决这个冲突,有两个servlet-api.jar?提前谢谢你。 最佳答案 如果您想从 Velocity 工具中删除 servlet-api,您可以
config ProcessReg ProcessReg text HelloWorld1 public class config implements Serv
您好,我有一个关于 servlet 调用另一个 servlet 的问题 我有一个名为 Relay 的主 servlet,它将负责控制其他 servlet 用户将点击并将转发到 Relay servle
在我的 REST API 项目中,我已将 /* 映射到 RESTServlet,并且需要在同一 WAR 中托管静态内容。我更愿意将 /static/* 映射到 WAS liberty 提供的默认 se
响应映射在 Servlet 中如何工作? 每个响应如何知道清除特定 HTML 或 Handlebars 上的输出? 最佳答案 有一个 ember-java带有 Jersey REST 服务 的 git
有一个 @WebServlet(urlPatterns = "/myServlet/") .如果用户转到 myapp/myServlet/other ,我仍然希望我的 servlet 能够捕获。也就是
我正在使用 Filter 在我的所有页面中插入反点击劫持 header - 这工作正常,除了 JBoss EAP 6.3 容器管理的登录页面,这是更重要的页面之一拥有它。 登录页面根本不调用过滤器,登
我正在尝试使用 RequestDispatcher 将数据从一个 servlet 传递到另一个 servlet。这是我的调度程序代码。 String address; address = "/Java
我刚刚开始使用 Servlet,并设法让一些 Servlet 充当单独的 URL,用于填充数据库以进行一些虚拟测试。某种形式: public class Populate_ServletName ex
我是否需要同时配置app.servlet.version 和 grails.servlet.version? 前者在application.properties中,后者在BuildConfig.gro
在Myeclipse中我创建了一个名为web1的Web项目,并添加了一个名为servlet1的servlet,web.xml如下: servlet1 servlet1
这个问题在这里已经有了答案: How to run a background task in a servlet based web application? (5 个回答) 6年前关闭。 是否可以在
在我的 ManagedBean 中,如果我将范围从 @RequestScoped 更改为 @ViewScoped,我将收到以下错误堆栈。我该如何解决这个问题?不过,当我运行应用程序时,我可以在页面中看
这个问题已经有答案了: How do I execute multiple servlets in sequence? (2 个回答) 已关闭 3 年前。 我已经构建了jdbc-Servlet的代码,
我一直在徒劳地尝试实现 tomcat 9 的 jakarta servlet,而不是以前的 javax.servlet 实现(因为我的理解是 jakarta 包是前进的方向)。问题是,当我将浏览器指向
我是 Spring 新手,正在尝试使用 Maven 部署和运行我的第一个 Spring Web 应用程序。有关更多详细信息,请参阅 here (我昨天发布的一个问题): 现在,我遇到的问题是:当我尝试
我正在尝试学习如何使用 JSP。我遇到了一些毫无意义的事情,至少在我看来是这样: 当我尝试运行时: response.getWriter().println(m.getDb().printAll())
我是一名优秀的程序员,十分优秀!