【问题标题】:java web application deployment on tomcat server在 tomcat 服务器上部署 java web 应用程序
【发布时间】:2012-06-23 09:01:00
【问题描述】:

我在 jdk1.5 上开发了一个 java web 应用程序。

我使用 eclipse IDE 进行开发。当我通过 Eclipse 运行应用程序时,它工作正常,没有遇到任何问题。但是,当我尝试在同一台机器的 tomcat 服务器中部署与 war 文件相同的应用程序时,它会抛出一些错误,如 Bad version number in .class file 或在其他时间我会收到类似 java.lang.NoClassDefFoundError 的错误消息。

这就是堆栈跟踪中的内容。

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError
    com.bdisys.auditservice.manager.AuditServiceManager.updateAuditServiceDetails(AuditServiceManager.java:46)
    com.bdisys.auditservice.servlet.AuditServiceHandler.doPost(AuditServiceHandler.java:45)
    com.bdisys.auditservice.servlet.AuditServiceHandler.doGet(AuditServiceHandler.java:34)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

我正在为 Java 编译器设置附加我的项目配置。

任何人都可以提出解决这个奇怪问题的建议吗?

【问题讨论】:

  • 你能把堆栈跟踪贴在这里吗?
  • @PetarMinchev 你现在能检查一下吗..我已经用堆栈跟踪中的内容更新了我的问题。
  • 第 46 行中 AuditServiceManager 在做什么
  • @PetarMinchev 在那只是创建另一个类的对象。
  • 请通过选择您的项目并单击该项目上下文菜单的属性并选择 Java 编译器来告诉我 Java 版本。你是如何创建你的战争文件(任何构建工具)的?

标签: tomcat web-applications deployment java


【解决方案1】:

错误

Bad version number in .class 

这是JVM不兼容造成的。

确保您使用相同的 Java 版本进行编译和执行。

检查您的 Tomcat 安装使用的 JRE 是否与您用于编译和生成 WAR 文件的 JDK 1.5 版本相匹配。

【讨论】:

    【解决方案2】:

    您的类路径和库是否正确?应用程序未运行,因为在包 com.bdisys.auditservice.manager 中找不到类 AuditServiceManager(它是一个库?)

    【讨论】: