获取IllegalStateException:访问部署的Spring应用程序到Google App Engine时没有这样的servlet:jsp

时间:2017-09-24 15:54:43

标签: jsp spring-mvc google-app-engine

我一直在尝试在Google App Engine应用程序上部署Spring MVC Java Web应用程序,但一直没有运气。 我正在使用App Engine Java SDK从我的机器上部署它。 当我执行部署时,我可以通过URL访问资源(例如图像,js等)。但是当我尝试访问主页时,我收到500状态代码的响应,服务器上的错误如下: 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) ...

我试图查找“没有这样的servlet:jsp”错误,但我发现找到的不同建议没有任何运气。 PS:使用App Engine命令在本地开发环境中测试Web服务器时,Web Server按预期工作。

希望你能给我任何关于必须做错的建议。

谢谢

1 个答案:

答案 0 :(得分:6)

当我们尝试在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提供服务。我们现在能够在GAE上使用带有Spring MVC和Apache Tiles的Java 8,但我们现在必须使用JSP额外生成的空格,如下所述:How to trim whitespaces from your JSP pages这对我们来说不是一个破坏性的,而针对JDK 1.8是一个绝对要求...希望这会有所帮助。