【问题标题】:wsdl xmlns problems with NetBeans and wsimportNetBeans 和 wsimport 的 wsdl xmlns 问题
【发布时间】:2009-12-07 20:38:53
【问题描述】:

我们的应用程序提供了一个 SOAP API。我们的 wsdl 起始行类似于

<wsdl:definitions name='ControlDServices' ... xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' ...

这通常可以正常工作,但客户抱怨说,当他们尝试在 NetBeans 中使用我们的 SOAP API 和我们提供的 wsdl 时,他们收到了以下错误:

Web Service can not be created by JAXWS:wsimport utility.
Reason: invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/")

这可以通过运行轻松地重新创建:

wsimport  -d . -extension -Xnocompile -keep -s . -verbose <our wsdl file>

产生错误:

[ERROR] invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/")
unknown location

我们的支持人员发现,将 xmlns:soap 定义更改为使用 http://www.w3.org/2001/12/soap-envelope/ 可以解决问题,但这需要更改我们的产品,并且与我在网上看到的大多数地方相矛盾其中定义了 wsdl:definitions 文件。此外,该URI似乎属于soap-envelop而不属于wsdl,并且也是针对特定日期的,而不是通用URI。

有没有办法在不改变我们的 wsdl 的情况下解决 NetBeans / wsimport 问题,例如通过改变参数?如果否,并且需要更改,将其更改为 http://www.w3.org/2001/12/soap-envelope/ 是否明智,还是应该使用其他内容?

谢谢
分裂者

【问题讨论】:

    标签: soap netbeans wsdl xml-namespaces wsimport


    【解决方案1】:

    看起来他们不支持 SOAP 1.1,只支持 SOAP 1.2。

    【讨论】:

    • 那么,我应该使用什么命名空间 URI?
    • 你没有做错任何事——他们也没有。你只是不兼容。看看他们是否可以处理 SOAP 1.1,也许有一个 -soap11 开关?否则,您的应用程序将需要支持 SOAP 1.2,这不仅仅是名称空间的更改。您的应用程序在哪个平台上运行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    相关资源
    最近更新 更多