我一直在尝试在 Google App Engine 应用程序上部署 Spring MVC Java Web 应用程序,但一直没有成功。
我正在使用 App Engine Java SDK 从我的机器上部署它。
当我执行部署时,我可以通过 URL 访问资源(例如图像、js 等)。但是当我尝试访问主页时,我得到一个 500 状态代码的响应,服务器上的错误如下:
java.lang.IllegalStateException: 没有这样的 servlet: jsp
在 org.eclipse.jetty.servlet.ServletHandler.updateMappings (ServletHandler.java:1535)
在 org.eclipse.jetty.servlet.ServletHandler.doStart (ServletHandler.java:157)
...
我尝试查找“No such servlet: jsp”错误,但我没有找到任何不同的建议。 PS:当使用 App Engine 命令在本地开发环境中测试网络服务器时,网络服务器按预期工作。
希望你能给我任何错误的建议。
谢谢
最佳答案
当我们尝试在 GAE 上从 Java 7 迁移到 8 时,这个问题第一次出现。我们有 Spring MVC + Apache Tiles,我们正在为遗留的 JSP 页面提供服务。由于这是指向 JSP 问题,我开始尝试相关选项。其中之一在 web.xml 中定义如下:
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
我只是删除了这个 jsp-property-group 定义,GAE 服务器又开始为 JSP 提供服务。我们现在可以在带有 Spring MVC 和 Apache Tiles 的 GAE 上使用 Java 8,但我们现在必须忍受 JSP 额外生成的空格,如下所述:How to trim whitespaces from your JSP pages这对我们来说不是一个交易破坏者,而针对 JDK 1.8 是绝对要求......希望这有帮助。
关于jsp - 获取 IllegalStateException : No such servlet: jsp when accessing deployed Spring application to Google App Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391970/