上午把本地调试好的微信应用部署到SAE上,结果访问503错误。关键日志:
----------------------------------------------------
org.eclipse.jetty.servlet.ServletHolder$1: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [winpm25.controller.WechatController] for bean with name 'wechatController' defined in file [/data1/jetty_work/919/winpm25/jetty-0.0.0.0-13126-winpm25.war-_2_winpm25-any-/webapp/WEB-INF/classes/winpm25/controller/WechatController.class]: problem with class file or dependent class; nested exception is java.lang.UnsupportedClassVersionError: winpm25/controller/WechatController : Unsupported major.minor version 51.0
----------------------------------------------------
Sae使用的JDK版本是1.6,我在本地使用的是JDK1.7,在编辑器中更改 java compiler 版本,重新编译后,打包上传即可。
注意,即使你项目使用的JDK 1.6,但是编译版本如果是1.7,那么仍然会出现这个错误。
major.minor version,它相当于一个软件的主次版本号,只是在这里是标识的一个Java Class的主版本号和次版本号。
不同的JDK版本使用的major.minor不同,所以会导致这个错误。
---------------------------------------------------------------------------------------
另外,部署后请求访问提示:
'<>' operator is not allowed for source level below 1.7
代码中:
List<AirQuality> result=new ArrayList<>();
因为类型推断需要Java 7.还是JDK版本的原因。