【问题标题】:Class not found JettyHttpServerProvider -> Unsupported major.minor version 52.0找不到类 JettyHttpServerProvider -> 不支持的 major.minor 版本 52.0
【发布时间】:2015-09-09 07:15:01
【问题描述】:

通过设置

 System.setProperty(.sun.net.httpserver.HttpServerProvider",
          "org.eclipse.jetty.jaxws2spi.JettyHttpServerProvider");

未找到 org.eclipse.jetty.jaxws2spi.JettyHttpServerProvider 类。

sun.misc.ServiceConfigurationError: java.lang.ClassNotFoundException: org.eclipse.jetty.jaxws2spi.JettyHttpServerProvider

我已包含库:Jetty 9、jaxws-ri-2.2.10、Jaxb-2.2.7

我已经签出:
Metro + Jetty + OSGi = pain

但是 codehaus 的东西是 afaik 移动到 eclipse...

org.eclipse.jetty.jaxws2spi.JettyHttpServerProvider在哪里?

编辑:

好的,我发现它被重命名为 org.eclipse.jetty.http.spi.JettyHttpServerProvider

但现在我得到了:

java.lang.UnsupportedClassVersionError: org/eclipse/jetty/http/spi/JettyHttpServerProvider : Unsupported major.minor version 52.0

已解决: 通过使用 Jetty 9.0.6,它与 Java 7 兼容

【问题讨论】:

  • 您是否包含了 JAX-WS RI?
  • jaxws-ri-2.2.10 包含
  • 不要使用 Jetty 9.0.6,整个 Jetty 9.0.x 版本是从 Servlet 3.0 到 Servlet 3.1 的过渡套件(它甚至使用了 servlet 3.1 规范的 beta 版本!)。至少使用 Jetty 9.1.x 甚至更好的 9.2.x(也支持 Java 7)

标签: java web-services jetty jax-ws com.sun.net.httpserver


【解决方案1】:

从 Java 类文件格式中可以看出,字节偏移量 6 和 7 用于存储类文件版本。 The table here will help

版本 52 用于指示类文件格式是 Java 8。我的猜测是您正在使用具有 Java 8 要求的库(或者只是使用 Java 8 构建且不针对以前的类文件的库格式)并在 Java 7 上运行。

Jetty 9 应该是 Java 1.7 based,这意味着您要么使用更新的东西,要么使用需要 Java 8 的某人的定制版本。

【讨论】:

  • 9.3.1 是 Java 8,我降级到 9.0.6
  • Jetty 9.3.0 是 Java 8 的第一个版本,就在 Java 7 最终 EOL 之后。当 Java 8 进入 EOL 时,Jetty 的下一个主要版本也将放弃支持。 (注:Jetty 版本是{servlet_spec_support}.{major_version}.{minor_version},意思是 Jetty 9.3 是 9.0 之后的 3 个主要版本)
猜你喜欢
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 2017-01-23
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多