【问题标题】:The constructor Service(URL, QName, WebServiceFeature[]) is undefined构造函数 Service(URL, QName, WebServiceFeature[]) 未定义
【发布时间】:2012-03-24 23:00:54
【问题描述】:

在我为客户端 Web 服务运行 wsimport 后,我​​得到 构造函数 Service(URL, QName, WebServiceFeature[]) is undefined error。我正在使用 JDK 1.6。请帮忙。

【问题讨论】:

    标签: jax-ws wsimport


    【解决方案1】:

    在使用 wsimport 为 JAX-WS 2.0 等生成源代码时添加附加选项“-target 2.0”。

    【讨论】:

    • 这对我有用,因为我使用的是 Java EE 5,它覆盖了 JAC-WS 的版本。
    【解决方案2】:

    您已经生成了需要 JAX-WS 2.1 的代码。 2.0 版没有 WebServiceFeature 类,因此在 Service 中也没有具有这种参数类型的构造函数。

    如您所见,在 Java SE 6 中没有这样的构造函数:javax.xml.ws.Service SE 6,但例如在 Java EE 6 中有:javax.xml.ws.Service EE 6

    【讨论】:

    • @Sergey 你什么意思?一般来说,过去的版本不反映未来的变化。当需要 2.1 的特性时,应该使用 2.1。
    • Mikko Maunu,很抱歉我很愚蠢,但是如何设置 jaxws 的版本 - 只需替换 jar 文件?
    • 是的,您需要新代码,对于一个库,请确保它优先于 jdk 类(在 eclipse 中,顺序和导出顺序必须将 jdk 放在新库的下方)。此外,还有 jdk 1.7。
    • 我个人认为@Sireesh Yarlagadda 的答案是真正的解决方案,而这个答案更像是对问题的提示。
    • @Fritz 的回答也可能是另一种解决方案。
    【解决方案3】:

    在首选项中更改您的 JAX-WS。这是 Java 6 SE 和 Java EE 的兼容性问题

    有时从 Java 1.6 更改为 Java 1.7 也可以解决此问题。

    【讨论】:

      【解决方案4】:

      从classpath中删除jdk1.6,然后添加jdk1.7可以解决这个问题

      【讨论】:

      • 也可以用jdk1.8替换jdk1.6
      【解决方案5】:

      您可以从 JAX-WS 2.2 API 手动将 webservices-api.jar 添加到 /lib/endorsed。见本页底部:https://blogs.oracle.com/ritzmann/entry/metro_2_0_on_java

      【讨论】:

        【解决方案6】:

        此外,要从 java 6 切换到 java 7,您可能需要更改“Java 构建路径”中的“订购和导出”Eclipse 选项卡,并将“JRE 系统库”放在列表顶部。 如果可行,则可能意味着您的项目中某处有一个旧 jar。

        【讨论】:

          【解决方案7】:

          在 Eclipse 中检查 Java 版本。转到命令提示符并检查那里的 Java 版本(命令:java -version)。 匹配两个版本,它应该可以正常工作。

          【讨论】:

            猜你喜欢
            • 2014-12-15
            • 2020-04-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-11
            • 2020-09-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多