【问题标题】:Unsupported class version while calling web service [duplicate]调用 Web 服务时不支持的类版本 [重复]
【发布时间】:2014-05-31 08:04:54
【问题描述】:

我正在使用 jre 1.5 tomcat 服务器。在我的应用程序中,我正在调用 Web 服务。当我调用 Web 服务时,出现以下错误。

java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

所以我发现问题出在jax-ws jar 文件上。

我在我的应用程序构建路径中使用以下 jar 文件。

jaxws-api-2.0.jar

我只添加了这个 jar 文件。我怀疑这个 jar 不是在jre 1.5 下编译的。

请帮我解决这个问题。或者指向一个可以在jre 1.5下工作的jar文件。

【问题讨论】:

  • Java 1.5 比较老了,还有机会升级吗?
  • @Henry 没有机会升级.. 任何选择。
  • @RomanC 我试过了.. 我的编译器和所有东西都只在 JDK 1.5 中.. 只在 JRE1.5 中.. 我可以找到 jax-ws 的最低版本是 jaxws-api-2.0.jar 不支持..
  • 你真的真的升级会更好 - 值得投入大量精力。 JDK 1.5 现在已经 10 多年了...您对您的机器上没有尚未修补的安全问题有多大信心?
  • “没有机会升级” - 为什么?说真的,如果您正在运行 Tomcat 服务器,那么升级您的 JVM 始终是可能的。唯一合理的理由是您的管理层在临床上厌恶风险......并且不知道运行旧/未修补软件的风险。

标签: java web-services tomcat jax-ws


【解决方案1】:

首先,您最好的选择是升级到 Java 7(或者更好的是 8),并考虑升级到更新版本的 Tomcat。

Java 5 平台确实很古老,并且(免费)安全补丁在几年前就已停止使用。因此,除非您支付 Oracle Java 维护费用,否则您的 JVM 中可能存在许多未修补的安全漏洞。

如果您正在运行 Tomcat,确实没有不升级的充分理由,尤其是因为您显然正在构建/部署新的 web 应用程序。


如果不能,那么最好的办法是下载 JAXWS 2.0 API 的源代码并尝试使用 Java 5 编译器对其进行编译。然而:

  • 我无法找到 JAXWS 2.0 API 源代码。我能找到的最接近的是 2.2。
  • JAXWS 2.x API 源代码有可能无法在 Java 5 下编译。

相关问题:JAX-WS RI on Java 5.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    相关资源
    最近更新 更多