我正在尝试使用推送在应用引擎上部署功能。 Jenkins构建作业成功在app引擎上部署了was文件。
但是当我访问appspot.com上的jsp时,我收到以下错误:
java.lang.UnsupportedClassVersionError: org/apache/jsp/guestbook_jsp : Unsupported major.minor version 52.0
要部署的jenkins
命令:
gcloud --project=<project-id> preview app deploy target/guestbook-1.0-SNAPSHOT
我猜这些错误表明JSP是用Java 8编译的,但JRE是Java 7.
有谁能告诉我这里哪里出错?
我正在使用Java Maven项目。
答案 0 :(得分:1)
我有同样的问题。通过单独安装jdk 7可以避免这种情况,但不是这样。我更愿意找到合适的解决方案。
在maven org.apache.maven.plugins插件中将源和目标设置为1.7并不能解决问题。我的源代码编译为1.7,但JSP代码编译为1.8。
必须有更好的方法。
答案 1 :(得分:0)
它未在App Engine上编译为标题,但在您的计算机上。您正在使用Java 8编译源代码,这就是您看到Unsupported major.minor version 52.0
异常消息的原因。
使用Java 7编译代码。您可以检查您拥有哪种Java,例如对于Linux:
java -version
您可以尝试将JAVA_HOME
环境变量设置为Java 7主目录,然后打开新终端或重新登录。
答案 2 :(得分:0)
您需要将Java compiler plugin设置为Java版本1.7:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
答案 3 :(得分:0)
我在推送部署方面遇到了同样的问题。当您登录到实例并执行java -version时,您会看到它是Java7,但这不是用于使用jenkins构建项目的docker image cloud-dev-java所使用的java。如果为shell添加构建步骤并执行java -version,您将看到此图像使用openjdk-8。
我通过在docker镜像中手动安装Java7来解决这个问题。以下是我详细解决这个问题的方法:
检查正在运行的docker实例的名称
mpoehler_gmail_com @ bitnami-jenkins:〜$ sudo docker ps
集装箱ID图像命令创建状态端口名称
548bc88db321 container.cloud.google.com/_b_dev_containers/cloud-dev-go:prod&#34; / bin / bash / google / s 27小时前up 27 hours condescending_kowalevski
d9fe6779f5d9 container.cloud.google.com/_b_dev_containers/cloud-dev-php:prod&#34; / bin / bash / google / s 27小时前up 27 hours hungry_turing
aedb0573a460 container.cloud.google.com/_b_dev_containers/cloud-dev-java:prod&#34; / bin / bash / google / s 27小时前up 27 hours mad_kowalevski
bef5657ea109 container.cloud.google.com/_b_dev_containers/cloud-dev-python:prod&#34; / bin / bash / google / s 27小时前上传27小时reverent_bohr
我们正在寻找名为 mad_kowalevski
现在在该容器中安装java 7:
sudo docker exec mad_kowalevski sudo apt-get update
sudo docker exec mad_kowalevski sudo apt-get -y install openjdk-7-jdk
之后运行java -version以查看它是否按预期工作
sudo docker exec mad_kowalevski java -version
java version&#34; 1.7.0_79&#34; OpenJDK运行时环境(IcedTea 2.5.5)(7u79-2.5.5-1~deb8u1) OpenJDK 64位服务器VM(内置24.79-b02,混合模式)
之后构建将按预期工作。