我在Eclipse中有一个 app engine 项目。我在WAR文件夹中保留了 JSP文件。我已将安装的jre中的路径指定为 JDK1.8 。现在,当我在 local 中运行项目时,JSP文件在单击超链接后成功加载。部署到Google App Engine后的同一项目无法加载。它显示服务器错误。
我认为可能的原因:我读了一些Google AppEngine现在支持JAVA 7的地方。所以当我在JDK1.8中编译JSP文件时,它工作得很好。但是当我在云中部署项目时,问题就出现了。我认为,它无法编译JSP文件。
请建议我你的想法?是因为同样的原因吗?
答案 0 :(得分:4)
根据可用的文档,“App Engine在安全的”沙盒“环境中使用Java 7 JVM运行Java Web应用程序。”所以就运行时而言。它现在具有Java 6应用程序的向后兼容性。
但是,请记住,App Engine SDK现在只支持Java 7.理想情况下,我不会使用JDK 8,其中的东西仍在使用中。
在幕后,当您将应用程序上传到App Engine时,他们会根据您链接的SDK JAR了解要使用的Java运行时。理想情况下,这是照顾你的。
所以,我仍然认为虽然你已经在本地提供了JDK 1.8,但是App Engine版本的JAR足以让Google在适当的Java 7 JVM中部署你的应用程序,如果它只是一个简单的JSP就应该有用了。你想要联系起来。
由于您没有详细说明JSP的功能,因此最好知道,因为这可以给出一些指示。此外,我建议您允许DEBUG日志并访问管理控制台日志以了解出现了什么问题。这将为您提供更多细节。
答案 1 :(得分:1)
我确实遇到了这个问题;包括一个JSP文件,即使没有任何Java代码或任何内容,也会阻止我的appengine实例启动。
解决方案是确保使用1.7 VM启动Eclipse,即使您正在针对1.8 JDK进行开发。由于我的Eclipse实例在1.8 VM中运行,因此生成的JSP文件与AppEngine不兼容。
您可以在eclipse.ini中更改主机VM,如下所示:Google App Engine JSP can't deploy: java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE