【问题标题】:Error running automated tests by JenkinsJenkins 运行自动化测试时出错
【发布时间】:2015-08-12 11:36:35
【问题描述】:

使用命令构建我的应用程序时:

$> git push heroku master

应用程序工作正常,我可以运行自动化测试,但是当我通过 Jenkins 构建我的应用程序时,我从浏览器收到以下消息:

 HTTP Status 500 - An exception occurred processing JSP page /university/universityList.jsp at line 18

 15: 
 16:    <jsp:include page="universitiesMenu.jsp" />
 17: 
 18:        <jsp:include page="universities.jsp" />
 19: 
 20:    </div>
 21: 

 Stacktrace:

    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    ...

    root cause

    javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: br/usp/icmc/rest/ClientRestUniversity : Unsupported major.minor version 51.0 (unable to load class br.usp.icmc.rest.ClientRestUniversity)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:343)

    ...

    root cause

    java.lang.UnsupportedClassVersionError: br/usp/icmc/rest/ClientRestUniversity : Unsupported major.minor version 51.0 (unable to load class br.usp.icmc.rest.ClientRestUniversity)
        org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2899)

    ...

完整的 Jenkins 日志文件:http://ricardoramos.url.ph/log_Jenkins.txt

为什么当我运行命令推送 heroku 时,应用程序和自动化测试正常工作,而当我由 Jenkins 部署时,我收到异常?我哪里错了?

【问题讨论】:

  • 基于堆栈跟踪它的问题是用于编译时和运行时的不同版本的 java。请确保java版本相同。
  • 我已经在我的 system.properties 文件中测试了 java 的版本 7 和 8,但仍然出现同样的问题。我如何知道我的项目在编译时和运行时使用了哪些版本的 java?
  • 您可以在 IDE 中检查编译器的 java 版本,对于运行时,您可以检查 Web 或应用程序服务器支持的 java 版本。
  • 您能否验证 Jetty 已配置为使用正确的 JDK 版本?
  • 看起来 (Jetty changelog) 从 9.2.0 版本开始支持 JDK 8。这可能是寻找兼容性问题的潜在场所。

标签: java heroku jenkins


【解决方案1】:

看来 Jenkins 使用的 JDK 版本与您的源代码所需的版本不兼容。

您可以阅读配置 Jenkins 和 JDK Configuring Your JDKs

也可以查看SO post

【讨论】:

    猜你喜欢
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多