由于 JDK 7 中的 wsimport 和 JAVA 支持 JDK 6 导致的错误 - 兼容性问题

Error due to wsimport on JDK7 and JAVAC support JDK6 - compatibility issue

我在我的项目中使用 ANT 1.6 /JAX-WS 2.0/Weblogic 11g。我得到了我们的构建机器在 JDK7 上但我们的部署机器(包括 weblogic)在 JDK6 上的要求。现在我在创建 war 文件时遇到错误。

步骤 - 在 build.xml 文件中创建 war 文件之前:

1) 我使用 JDK7 调用 wsimport 作为默认值 java home 是 JDK7 (因为构建机器现在在 JDK7 上)我设置 -Xnocompile 所以源代码未使用默认 JDK7 编译。

2) 在执行 javac 期间,我指定了 属性 [source ="6" target="6" fork="false"|"true"(一次一个 fork 的两个组合)] 以使构建与 JDK6 兼容。但是,我在读取 wsimport 生成的代码时遇到错误。

问题是我目前所理解的 - 我们正在从 JDK7 执行 wsimport 并通过将 属性 设置为 JDK6 来编译代码。因此 javac 执行期间不支持 JDK7 生成的 java 文件。

我收到如下类似的错误 - 仅供参考,wsimport 命令在我的 build.xml 文件中生成 ADMIN.java 文件。

 C:\MyProject\src\com\company\abc\xyz\delivery\ws\ADMIN.java:46: cannot find symbol 
    [javac] symbol  : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
    [javac] location: class javax.xml.ws.Service
    [javac]         super(__getWsdlLocation(), ADMIN_QNAME, features);<br>
    [javac]  

除了更改我们构建机器的 Java_home 选项并指向 JDK6 或您的 运行 java 版本之外,无论如何都无法解决上述问题。