首先,根据文档,JAX-WS 参考实现应该适用于 Java 5。
然而,最新版本 (2.2.7) 的二进制包是使用 Java 6(类版本 50.0)编译的,因此在 Java 5 中使用它会导致抛出 UnsupportedClassVersionError。我已经下载了 Java 源代码并尝试用 Java 5 编译它们,但是由于依赖库是为 Java 6 编译的,所以这也不能直接工作。我尝试使用“-target 1.5”使用 Java 6 编译一个新版本,以至少在编译文件中获得正确的类版本,但我不确定我是否遇到其他问题,如果在某个时候实际实现需要 Java 6 或更高版本。
有谁知道最新的 JAX-WS RI 版本,它可以与 Java 5 一起使用而没有类似的变通方法?
编辑:
至少要回答我的问题的一部分,JAX-WS RI 实现利用了 Java 6 SE API 中的新功能,并且不会在 Java 5 上运行,即使这些类是针对目标 1.5 编译的。至少 org.jvnet.ws.message.BasePropertySet 类使用了 java.util.AbstractMap$SimpleImmutableEntry 类,该类仅在 Java 1.6 之后才可用。